{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "f43539ee-4f37-4150-8fa3-9787a4b3406f",
   "metadata": {},
   "source": [
    "## 总复习"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "id": "72e429f2-249c-4a22-b337-c905e2b5983d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5.1</td>\n",
       "      <td>3.5</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>Iris-setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4.9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>Iris-setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4.7</td>\n",
       "      <td>3.2</td>\n",
       "      <td>1.3</td>\n",
       "      <td>0.2</td>\n",
       "      <td>Iris-setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4.6</td>\n",
       "      <td>3.1</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.2</td>\n",
       "      <td>Iris-setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>Iris-setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>145</th>\n",
       "      <td>6.7</td>\n",
       "      <td>3.0</td>\n",
       "      <td>5.2</td>\n",
       "      <td>2.3</td>\n",
       "      <td>Iris-virginica</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>146</th>\n",
       "      <td>6.3</td>\n",
       "      <td>2.5</td>\n",
       "      <td>5.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>Iris-virginica</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>147</th>\n",
       "      <td>6.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>5.2</td>\n",
       "      <td>2.0</td>\n",
       "      <td>Iris-virginica</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>148</th>\n",
       "      <td>6.2</td>\n",
       "      <td>3.4</td>\n",
       "      <td>5.4</td>\n",
       "      <td>2.3</td>\n",
       "      <td>Iris-virginica</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>149</th>\n",
       "      <td>5.9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>5.1</td>\n",
       "      <td>1.8</td>\n",
       "      <td>Iris-virginica</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>150 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       0    1    2    3               4\n",
       "0    5.1  3.5  1.4  0.2     Iris-setosa\n",
       "1    4.9  3.0  1.4  0.2     Iris-setosa\n",
       "2    4.7  3.2  1.3  0.2     Iris-setosa\n",
       "3    4.6  3.1  1.5  0.2     Iris-setosa\n",
       "4    5.0  3.6  1.4  0.2     Iris-setosa\n",
       "..   ...  ...  ...  ...             ...\n",
       "145  6.7  3.0  5.2  2.3  Iris-virginica\n",
       "146  6.3  2.5  5.0  1.9  Iris-virginica\n",
       "147  6.5  3.0  5.2  2.0  Iris-virginica\n",
       "148  6.2  3.4  5.4  2.3  Iris-virginica\n",
       "149  5.9  3.0  5.1  1.8  Iris-virginica\n",
       "\n",
       "[150 rows x 5 columns]"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "data= pd.read_csv(\"D:/Pythonwork/homework/homework/irisdata.txt\",header=None)\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "id": "812bd80b-17ba-42f0-8514-bd3455717c3b",
   "metadata": {},
   "outputs": [],
   "source": [
    "X=data.iloc[0:150,0:4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "id": "69ebe86d-610b-42a9-995e-ad62928fe234",
   "metadata": {},
   "outputs": [],
   "source": [
    "data['target'] = 0\n",
    "data.loc[(data[4] == 'Iris-versicolor'), 'target'] = 1\n",
    "data.loc[(data[4] == 'Iris-virginica'), 'target'] = 2\n",
    "y= data['target'] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "0677b83b-d614-4451-bcf3-3d88d121c933",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 拆分训练集和测试集\n",
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1086)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "id": "8fa0aad3-3333-4a1d-8040-fd62b83808eb",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "原始数据：\n",
      " [[ 0.32573117 -0.32544856  0.54980652  0.29362758]\n",
      " [ 0.93647712 -0.32544856  0.4930976   0.16187162]\n",
      " [ 0.08143279 -0.08309325  0.77664222  0.82065145]\n",
      " [ 0.69217874 -0.81015917  0.89006007  0.95240742]\n",
      " [ 1.05862631  0.64397267  1.11689577  1.21591936]\n",
      " [ 0.69217874  0.40161737  0.43638868  0.42538355]\n",
      " [-0.89576072  1.85574921 -1.03804336 -1.02393209]\n",
      " [-1.50650667  0.88632798 -1.32158798 -1.15568806]\n",
      " [ 0.69217874 -0.56780386  1.06018684  1.21591936]\n",
      " [ 1.18077549 -0.08309325  1.00347792  1.21591936]\n",
      " [-0.0407164  -0.81015917  0.20955298 -0.23339629]\n",
      " [-0.89576072  1.85574921 -1.26487906 -1.15568806]\n",
      " [-1.50650667  0.15926206 -1.26487906 -1.28744402]\n",
      " [-1.26220829  0.88632798 -1.03804336 -1.28744402]\n",
      " [-0.77361153 -0.81015917  0.09613513  0.29362758]\n",
      " [-0.16286559 -0.56780386  0.43638868  0.16187162]\n",
      " [ 0.57002955 -1.7795804   0.37967975  0.16187162]\n",
      " [-1.01790991  0.88632798 -1.26487906 -1.28744402]\n",
      " [-0.40716396 -1.53722509 -0.01728272 -0.23339629]\n",
      " [-0.16286559  1.85574921 -1.15146121 -1.15568806]\n",
      " [ 0.20358198 -2.02193571  0.15284405 -0.23339629]\n",
      " [ 0.32573117 -0.56780386  0.54980652  0.03011565]\n",
      " [-0.16286559 -0.32544856  0.2662619   0.16187162]\n",
      " [-0.0407164  -0.56780386  0.77664222  1.61118726]\n",
      " [ 2.15796901 -0.08309325  1.62727609  1.21591936]\n",
      " [ 0.20358198 -0.32544856  0.43638868  0.42538355]\n",
      " [-0.40716396 -1.29486979  0.15284405  0.16187162]\n",
      " [ 1.66937225  1.3710386   1.34373147  1.74294323]\n",
      " [-1.01790991  1.12868329 -1.20817013 -0.76042015]\n",
      " [ 0.81432793 -0.08309325  1.17360469  1.34767532]\n",
      " [-1.26220829  0.88632798 -1.20817013 -1.28744402]\n",
      " [-1.75080504 -0.32544856 -1.32158798 -1.28744402]\n",
      " [-0.28501477 -0.32544856 -0.07399164  0.16187162]\n",
      " [ 1.05862631  0.15926206  0.37967975  0.29362758]\n",
      " [ 1.79152144 -0.32544856  1.45714931  0.82065145]\n",
      " [-1.01790991  1.3710386  -1.32158798 -1.28744402]\n",
      " [ 2.2801182  -1.05251448  1.79740286  1.47943129]\n",
      " [-1.75080504 -0.08309325 -1.3782969  -1.28744402]\n",
      " [ 1.30292468  0.15926206  0.66322437  0.42538355]\n",
      " [-1.1400591  -1.53722509 -0.24411842 -0.23339629]\n",
      " [-0.89576072  0.64397267 -1.15146121 -0.89217612]\n",
      " [ 2.2801182  -0.56780386  1.68398501  1.08416339]\n",
      " [ 2.2801182   1.85574921  1.68398501  1.34767532]\n",
      " [ 0.57002955 -0.56780386  0.77664222  0.42538355]\n",
      " [ 1.66937225 -0.08309325  1.17360469  0.55713952]\n",
      " [-0.16286559 -0.56780386  0.20955298  0.16187162]\n",
      " [ 0.69217874 -0.32544856  0.32297083  0.16187162]\n",
      " [ 0.20358198 -0.08309325  0.60651545  0.82065145]\n",
      " [-1.26220829  0.15926206 -1.20817013 -1.28744402]\n",
      " [-0.89576072  1.12868329 -1.32158798 -1.28744402]\n",
      " [ 0.57002955  0.64397267  0.54980652  0.55713952]\n",
      " [ 0.57002955 -0.81015917  0.66322437  0.82065145]\n",
      " [-1.01790991 -0.08309325 -1.20817013 -1.28744402]\n",
      " [-1.1400591  -0.08309325 -1.32158798 -1.28744402]\n",
      " [-1.01790991 -1.7795804  -0.24411842 -0.23339629]\n",
      " [ 1.54722306 -0.08309325  1.23031362  1.21591936]\n",
      " [-0.40716396  1.12868329 -1.3782969  -1.28744402]\n",
      " [-0.52931315  0.88632798 -1.26487906 -1.02393209]\n",
      " [ 0.32573117 -1.05251448  1.06018684  0.29362758]\n",
      " [ 0.44788036 -2.02193571  0.43638868  0.42538355]\n",
      " [-1.1400591   0.15926206 -1.26487906 -1.41919999]\n",
      " [ 1.18077549  0.40161737  1.23031362  1.47943129]\n",
      " [-0.0407164   2.34045983 -1.43500583 -1.28744402]\n",
      " [-0.77361153  0.88632798 -1.32158798 -1.28744402]\n",
      " [ 1.05862631  0.64397267  1.11689577  1.74294323]\n",
      " [ 0.20358198 -0.81015917  0.77664222  0.55713952]\n",
      " [ 0.81432793  0.40161737  0.77664222  1.08416339]\n",
      " [-0.16286559 -1.05251448 -0.13070057 -0.23339629]\n",
      " [ 0.57002955 -0.32544856  1.06018684  0.82065145]\n",
      " [ 0.08143279 -0.08309325  0.2662619   0.42538355]\n",
      " [ 0.44788036  0.88632798  0.94676899  1.47943129]\n",
      " [-1.62865585 -1.7795804  -1.3782969  -1.15568806]\n",
      " [ 0.20358198 -2.02193571  0.7199333   0.42538355]\n",
      " [-1.75080504  0.40161737 -1.3782969  -1.28744402]\n",
      " [-1.1400591   0.15926206 -1.26487906 -1.41919999]\n",
      " [-1.26220829 -0.08309325 -1.32158798 -1.15568806]\n",
      " [-1.26220829 -0.08309325 -1.32158798 -1.41919999]\n",
      " [ 1.05862631  0.15926206  1.06018684  1.61118726]\n",
      " [-1.01790991  0.40161737 -1.43500583 -1.28744402]\n",
      " [-0.40716396 -1.7795804   0.15284405  0.16187162]\n",
      " [ 1.30292468  0.15926206  0.94676899  1.21591936]\n",
      " [ 1.05862631 -1.29486979  1.17360469  0.82065145]\n",
      " [-0.89576072  1.6133939  -1.26487906 -1.02393209]\n",
      " [ 1.30292468  0.15926206  0.77664222  1.47943129]\n",
      " [ 0.44788036 -0.32544856  0.32297083  0.16187162]\n",
      " [ 0.32573117 -0.56780386  0.15284405  0.16187162]\n",
      " [ 0.08143279  0.40161737  0.60651545  0.82065145]\n",
      " [-0.89576072  1.12868329 -1.32158798 -1.15568806]\n",
      " [ 0.44788036 -0.56780386  0.60651545  0.82065145]\n",
      " [-0.89576072  0.88632798 -1.26487906 -1.28744402]\n",
      " [-1.01790991  1.12868329 -1.3782969  -1.15568806]\n",
      " [-0.77361153  1.12868329 -1.26487906 -1.28744402]\n",
      " [ 0.93647712 -0.08309325  0.37967975  0.29362758]\n",
      " [-0.40716396 -1.05251448  0.37967975  0.03011565]\n",
      " [ 0.57002955  0.88632798  1.06018684  1.61118726]\n",
      " [-0.28501477 -0.08309325  0.43638868  0.42538355]\n",
      " [ 1.18077549 -0.56780386  0.60651545  0.29362758]\n",
      " [-0.0407164  -0.81015917  0.09613513  0.03011565]\n",
      " [-0.65146234  1.6133939  -1.26487906 -1.28744402]\n",
      " [-0.0407164  -0.81015917  0.77664222  0.95240742]\n",
      " [-1.1400591  -1.29486979  0.43638868  0.68889549]\n",
      " [ 1.42507387  0.40161737  0.54980652  0.29362758]\n",
      " [-0.16286559 -1.29486979  0.7199333   1.08416339]\n",
      " [-0.77361153  2.58281514 -1.26487906 -1.41919999]\n",
      " [-0.52931315  1.6133939  -1.26487906 -1.28744402]]\n",
      "均值： [-5.39251183e-17  4.22942105e-18 -5.92118946e-17 -5.49824736e-17]\n",
      "标准差： [1. 1. 1. 1.]\n",
      "标准化后的数据：\n",
      " StandardScaler()\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[ 0.32573117, -0.32544856,  0.54980652,  0.29362758],\n",
       "       [ 0.93647712, -0.32544856,  0.4930976 ,  0.16187162],\n",
       "       [ 0.08143279, -0.08309325,  0.77664222,  0.82065145],\n",
       "       [ 0.69217874, -0.81015917,  0.89006007,  0.95240742],\n",
       "       [ 1.05862631,  0.64397267,  1.11689577,  1.21591936],\n",
       "       [ 0.69217874,  0.40161737,  0.43638868,  0.42538355],\n",
       "       [-0.89576072,  1.85574921, -1.03804336, -1.02393209],\n",
       "       [-1.50650667,  0.88632798, -1.32158798, -1.15568806],\n",
       "       [ 0.69217874, -0.56780386,  1.06018684,  1.21591936],\n",
       "       [ 1.18077549, -0.08309325,  1.00347792,  1.21591936],\n",
       "       [-0.0407164 , -0.81015917,  0.20955298, -0.23339629],\n",
       "       [-0.89576072,  1.85574921, -1.26487906, -1.15568806],\n",
       "       [-1.50650667,  0.15926206, -1.26487906, -1.28744402],\n",
       "       [-1.26220829,  0.88632798, -1.03804336, -1.28744402],\n",
       "       [-0.77361153, -0.81015917,  0.09613513,  0.29362758],\n",
       "       [-0.16286559, -0.56780386,  0.43638868,  0.16187162],\n",
       "       [ 0.57002955, -1.7795804 ,  0.37967975,  0.16187162],\n",
       "       [-1.01790991,  0.88632798, -1.26487906, -1.28744402],\n",
       "       [-0.40716396, -1.53722509, -0.01728272, -0.23339629],\n",
       "       [-0.16286559,  1.85574921, -1.15146121, -1.15568806],\n",
       "       [ 0.20358198, -2.02193571,  0.15284405, -0.23339629],\n",
       "       [ 0.32573117, -0.56780386,  0.54980652,  0.03011565],\n",
       "       [-0.16286559, -0.32544856,  0.2662619 ,  0.16187162],\n",
       "       [-0.0407164 , -0.56780386,  0.77664222,  1.61118726],\n",
       "       [ 2.15796901, -0.08309325,  1.62727609,  1.21591936],\n",
       "       [ 0.20358198, -0.32544856,  0.43638868,  0.42538355],\n",
       "       [-0.40716396, -1.29486979,  0.15284405,  0.16187162],\n",
       "       [ 1.66937225,  1.3710386 ,  1.34373147,  1.74294323],\n",
       "       [-1.01790991,  1.12868329, -1.20817013, -0.76042015],\n",
       "       [ 0.81432793, -0.08309325,  1.17360469,  1.34767532],\n",
       "       [-1.26220829,  0.88632798, -1.20817013, -1.28744402],\n",
       "       [-1.75080504, -0.32544856, -1.32158798, -1.28744402],\n",
       "       [-0.28501477, -0.32544856, -0.07399164,  0.16187162],\n",
       "       [ 1.05862631,  0.15926206,  0.37967975,  0.29362758],\n",
       "       [ 1.79152144, -0.32544856,  1.45714931,  0.82065145],\n",
       "       [-1.01790991,  1.3710386 , -1.32158798, -1.28744402],\n",
       "       [ 2.2801182 , -1.05251448,  1.79740286,  1.47943129],\n",
       "       [-1.75080504, -0.08309325, -1.3782969 , -1.28744402],\n",
       "       [ 1.30292468,  0.15926206,  0.66322437,  0.42538355],\n",
       "       [-1.1400591 , -1.53722509, -0.24411842, -0.23339629],\n",
       "       [-0.89576072,  0.64397267, -1.15146121, -0.89217612],\n",
       "       [ 2.2801182 , -0.56780386,  1.68398501,  1.08416339],\n",
       "       [ 2.2801182 ,  1.85574921,  1.68398501,  1.34767532],\n",
       "       [ 0.57002955, -0.56780386,  0.77664222,  0.42538355],\n",
       "       [ 1.66937225, -0.08309325,  1.17360469,  0.55713952],\n",
       "       [-0.16286559, -0.56780386,  0.20955298,  0.16187162],\n",
       "       [ 0.69217874, -0.32544856,  0.32297083,  0.16187162],\n",
       "       [ 0.20358198, -0.08309325,  0.60651545,  0.82065145],\n",
       "       [-1.26220829,  0.15926206, -1.20817013, -1.28744402],\n",
       "       [-0.89576072,  1.12868329, -1.32158798, -1.28744402],\n",
       "       [ 0.57002955,  0.64397267,  0.54980652,  0.55713952],\n",
       "       [ 0.57002955, -0.81015917,  0.66322437,  0.82065145],\n",
       "       [-1.01790991, -0.08309325, -1.20817013, -1.28744402],\n",
       "       [-1.1400591 , -0.08309325, -1.32158798, -1.28744402],\n",
       "       [-1.01790991, -1.7795804 , -0.24411842, -0.23339629],\n",
       "       [ 1.54722306, -0.08309325,  1.23031362,  1.21591936],\n",
       "       [-0.40716396,  1.12868329, -1.3782969 , -1.28744402],\n",
       "       [-0.52931315,  0.88632798, -1.26487906, -1.02393209],\n",
       "       [ 0.32573117, -1.05251448,  1.06018684,  0.29362758],\n",
       "       [ 0.44788036, -2.02193571,  0.43638868,  0.42538355],\n",
       "       [-1.1400591 ,  0.15926206, -1.26487906, -1.41919999],\n",
       "       [ 1.18077549,  0.40161737,  1.23031362,  1.47943129],\n",
       "       [-0.0407164 ,  2.34045983, -1.43500583, -1.28744402],\n",
       "       [-0.77361153,  0.88632798, -1.32158798, -1.28744402],\n",
       "       [ 1.05862631,  0.64397267,  1.11689577,  1.74294323],\n",
       "       [ 0.20358198, -0.81015917,  0.77664222,  0.55713952],\n",
       "       [ 0.81432793,  0.40161737,  0.77664222,  1.08416339],\n",
       "       [-0.16286559, -1.05251448, -0.13070057, -0.23339629],\n",
       "       [ 0.57002955, -0.32544856,  1.06018684,  0.82065145],\n",
       "       [ 0.08143279, -0.08309325,  0.2662619 ,  0.42538355],\n",
       "       [ 0.44788036,  0.88632798,  0.94676899,  1.47943129],\n",
       "       [-1.62865585, -1.7795804 , -1.3782969 , -1.15568806],\n",
       "       [ 0.20358198, -2.02193571,  0.7199333 ,  0.42538355],\n",
       "       [-1.75080504,  0.40161737, -1.3782969 , -1.28744402],\n",
       "       [-1.1400591 ,  0.15926206, -1.26487906, -1.41919999],\n",
       "       [-1.26220829, -0.08309325, -1.32158798, -1.15568806],\n",
       "       [-1.26220829, -0.08309325, -1.32158798, -1.41919999],\n",
       "       [ 1.05862631,  0.15926206,  1.06018684,  1.61118726],\n",
       "       [-1.01790991,  0.40161737, -1.43500583, -1.28744402],\n",
       "       [-0.40716396, -1.7795804 ,  0.15284405,  0.16187162],\n",
       "       [ 1.30292468,  0.15926206,  0.94676899,  1.21591936],\n",
       "       [ 1.05862631, -1.29486979,  1.17360469,  0.82065145],\n",
       "       [-0.89576072,  1.6133939 , -1.26487906, -1.02393209],\n",
       "       [ 1.30292468,  0.15926206,  0.77664222,  1.47943129],\n",
       "       [ 0.44788036, -0.32544856,  0.32297083,  0.16187162],\n",
       "       [ 0.32573117, -0.56780386,  0.15284405,  0.16187162],\n",
       "       [ 0.08143279,  0.40161737,  0.60651545,  0.82065145],\n",
       "       [-0.89576072,  1.12868329, -1.32158798, -1.15568806],\n",
       "       [ 0.44788036, -0.56780386,  0.60651545,  0.82065145],\n",
       "       [-0.89576072,  0.88632798, -1.26487906, -1.28744402],\n",
       "       [-1.01790991,  1.12868329, -1.3782969 , -1.15568806],\n",
       "       [-0.77361153,  1.12868329, -1.26487906, -1.28744402],\n",
       "       [ 0.93647712, -0.08309325,  0.37967975,  0.29362758],\n",
       "       [-0.40716396, -1.05251448,  0.37967975,  0.03011565],\n",
       "       [ 0.57002955,  0.88632798,  1.06018684,  1.61118726],\n",
       "       [-0.28501477, -0.08309325,  0.43638868,  0.42538355],\n",
       "       [ 1.18077549, -0.56780386,  0.60651545,  0.29362758],\n",
       "       [-0.0407164 , -0.81015917,  0.09613513,  0.03011565],\n",
       "       [-0.65146234,  1.6133939 , -1.26487906, -1.28744402],\n",
       "       [-0.0407164 , -0.81015917,  0.77664222,  0.95240742],\n",
       "       [-1.1400591 , -1.29486979,  0.43638868,  0.68889549],\n",
       "       [ 1.42507387,  0.40161737,  0.54980652,  0.29362758],\n",
       "       [-0.16286559, -1.29486979,  0.7199333 ,  1.08416339],\n",
       "       [-0.77361153,  2.58281514, -1.26487906, -1.41919999],\n",
       "       [-0.52931315,  1.6133939 , -1.26487906, -1.28744402]])"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "scaler = StandardScaler()\n",
    "# Fit only to the training data\n",
    "X_scaled = scaler.fit(X_train)\n",
    "print(\"原始数据：\\n\", X_train)\n",
    "print(\"均值：\", scaler.mean_)\n",
    "print(\"标准差：\", scaler.scale_)\n",
    "print(\"标准化后的数据：\\n\", X_scaled)\n",
    "# Now apply the transformations to the data:\n",
    "X_train = scaler.transform(X_train)\n",
    "X_test = scaler.transform(X_test)\n",
    "X_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "id": "bfbdb23d-4594-4703-b807-1c4e1d804dfb",
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train = scaler.fit_transform(X_train*1.0) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "id": "330d8ef3-66f6-4fa1-88fe-45b8d3aff17c",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.neural_network import MLPClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "id": "0f76dfd5-4b2b-4c59-a422-0ee78ba0bce6",
   "metadata": {},
   "outputs": [],
   "source": [
    "mlp = MLPClassifier(hidden_layer_sizes=(4,3),max_iter=500)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "id": "526f82b0-f8be-4b46-a43c-a0a7c2dbc75b",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Python\\Lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:691: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (500) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-15 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-15 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-15 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-15 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-15 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-15 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-15 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-15 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-15 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-15 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-15 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-15 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-15 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-15 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-15 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-15 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-15 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-15\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>MLPClassifier(hidden_layer_sizes=(4, 3), max_iter=500)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-15\" type=\"checkbox\" checked><label for=\"sk-estimator-id-15\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;MLPClassifier<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.neural_network.MLPClassifier.html\">?<span>Documentation for MLPClassifier</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>MLPClassifier(hidden_layer_sizes=(4, 3), max_iter=500)</pre></div> </div></div></div></div>"
      ],
      "text/plain": [
       "MLPClassifier(hidden_layer_sizes=(4, 3), max_iter=500)"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mlp.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "id": "f9143293-bba9-4ac9-8296-2134a57f98d8",
   "metadata": {},
   "outputs": [],
   "source": [
    "predictions = mlp.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "id": "a7a29699-6d7c-4abc-964a-fa456190f303",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import classification_report,confusion_matrix, ConfusionMatrixDisplay\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "id": "60fa699f-5461-48fd-acf5-e86f6719bbe1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[14  0  0]\n",
      " [ 0 14  1]\n",
      " [ 0  0 16]]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAG2CAYAAACEWASqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAyyElEQVR4nO3de3wUVZ7H/W/nQidAOhAggWAIIHdB7iKKXEbFiYIwPquwoKKCiqCIcRB5EAEdiDi7iMACwuwC4wqDzyiIiiirXLyhJgRQ4QWiAaIYA4oEAoQkXc8fSI9NAqRTfauuz/v1qtduna7Lr+mZ+eV3zqk6DsMwDAEAAEuKCnUAAACg+kjkAABYGIkcAAALI5EDAGBhJHIAACyMRA4AgIWRyAEAsDASOQAAFkYiBwDAwkjkAABYGIkcAIAA2LJliwYOHKjU1FQ5HA6tWbOmwjG7d+/WrbfeqsTERCUkJOjqq6/WwYMHfboPiRwAgAAoLi5Wx44dNX/+/Eo///bbb9WrVy+1adNGmzZt0o4dOzRlyhTFxcX5dB8Hi6YAABBYDodDq1ev1uDBgz1tQ4cOVWxsrF5++WVT144xGVtIud1uHTp0SAkJCXI4HKEOBwDgI8MwdPz4caWmpioqKnCdxKdPn9aZM2dMX8cwjAr5xul0yul0+nQdt9utt99+W0888YRuuukm5ebmqlmzZpo0aZJXsq9qUJaVn59vSGJjY2Njs/iWn58fsFxx6tQpo2FytF/irF27doW2qVOnXjIGScbq1as9+z/++KMhyahZs6Yxe/ZsIzc318jKyjIcDoexadMmn76fpSvyhIQESdLiD9spvnZ0iKNBoP135+ahDgGAn5WpVB9pned/zwPhzJkzKigs14GcpnIlVL/qLzruVnrX/crPz5fL5fK0+1qNS2crckkaNGiQHnvsMUlSp06d9Mknn2jRokXq06dPla9l6UR+rnsjvna0aiaQyCNdjCM21CEA8Dfj7P8JxvBo7QSHaidU/z5unT3X5XJ5JfLqqF+/vmJiYtSuXTuv9rZt2+qjjz7y6VqWTuQAAFRVueFWuWHufH+pUaOGunfvrj179ni17927V+np6T5di0QOALAFtwy5Vf1M7uu5J06c0L59+zz7eXl52r59u5KSktSkSRNNmDBBQ4YMUe/evdWvXz+tX79eb775pjZt2uTTfUjkAAAEQHZ2tvr16+fZz8zMlCSNGDFCy5Yt05/+9CctWrRIWVlZGjdunFq3bq3XXntNvXr18uk+JHIAgC245ZaZznFfz+7bt6+MS7yq5b777tN9991nIioSOQDAJsoNQ+Um3oFm5txA4hWtAABYGBU5AMAWgj3ZLVhI5AAAW3DLUHkEJnK61gEAsDAqcgCALdC1DgCAhTFrHQAAhB0qcgCALbh/28ycH45I5AAAWyg3OWvdzLmBRCIHANhCuSGTq5/5LxZ/YowcAAALoyIHANgCY+QAAFiYWw6Vy2Hq/HBE1zoAABZGRQ4AsAW3cXYzc344IpEDAGyh3GTXuplzA4mudQAALIyKHABgC5FakZPIAQC24DYcchsmZq2bODeQ6FoHAMDCqMgBALZA1zoAABZWriiVm+iILvdjLP5EIgcA2IJhcozcYIwcAAD4GxU5AMAWGCMHAMDCyo0olRsmxsjD9BWtdK0DAGBhVOQAAFtwyyG3ifrVrfAsyUnkAABbiNQxcrrWAQCwMCpyAIAtmJ/sRtc6AAAhc3aM3MSiKXStAwAAf6MiBwDYgtvku9bDddY6FTkAwBbOjZGb2XyxZcsWDRw4UKmpqXI4HFqzZs0Fj33wwQflcDg0Z84cn78XiRwAYAtuRZnefFFcXKyOHTtq/vz5Fz1uzZo1+uyzz5Samlqt70XXOgAAAZCRkaGMjIyLHvPDDz/o4Ycf1rvvvqtbbrmlWvchkQMAbKHccKjcxFKk584tKiryanc6nXI6nT5fz+1266677tKECRN0xRVXVDsuutYBALZQ/ttkNzObJKWlpSkxMdGzZWVlVSueWbNmKSYmRuPGjTP1vajIAQDwQX5+vlwul2e/OtV4Tk6OXnzxRW3btk0Oh7nn06nIAQC24DaiTG+S5HK5vLbqJPIPP/xQhYWFatKkiWJiYhQTE6MDBw7o8ccfV9OmTX26FhU5AMAWft89Xr3z/fcc+V133aUbbrjBq+2mm27SXXfdpXvvvdena5HIAQAIgBMnTmjfvn2e/by8PG3fvl1JSUlq0qSJ6tWr53V8bGysGjZsqNatW/t0HxI5AMAW3JKpWetuH4/Pzs5Wv379PPuZmZmSpBEjRmjZsmXVjuN8JHIAgC1U56Uu55/vi759+8rwYcW0/fv3+xjRWUx2AwDAwqjIAQC2YH498vCsfUnkAABbYD1yBNWhz+O07oFGWn5tUy1s2UJ5G2pd8NjNTzXQwpYttGNpYhAjRKANGHFEy7fu1pvf7dT89XvV/qoToQ4JAcTvHXjBXv0sWMIzKqj0VJTqtSnRdU8fvuhxeRtq6acdcaqVUhakyBAMfW49qtHTD2nl3GSN6d9KX31WS395JU8NGp8JdWgIAH5vmBHyRL5gwQI1a9ZMcXFx6tq1qz788MNQhxQW0vucVI/MX9T8puILHnOiIFofTm+gG2b/pKiY8FzwHtVz2wNH9O7KJK1fUU/5++K0aGpjHT4UqwF3/xzq0BAA/N7B4a93rYebkEa1atUqjR8/XpMnT1Zubq6uu+46ZWRk6ODBg6EMyxIMt/T+hBR1GnVUSS35qz2SxMS61fLKk8rZnODVnrM5Qe26XfgPO1gTv3fwuA2H6S0chTSRz549WyNHjtSoUaPUtm1bzZkzR2lpaVq4cGEow7KE3MV1FRUtdRhxLNShwM9cSeWKjpF+PeI9F/XXwzGqm8wQSqTh94ZZIZu1fubMGeXk5OjJJ5/0au/fv78++eSTSs8pKSlRSUmJZ//8NWHt4vBXTu1cnqjb1+TL5KI5CGPnv0fC4ZD8+KpnhBl+78Bzm+weN/MymUAKWSI/cuSIysvLlZKS4tWekpKigoKCSs/JysrS9OnTgxFeWDv0RZxO/Rytl/s09bQZ5Q59+lx9fbm8ju7cdCB0wcG0ol+iVV4m1W3gXY0l1i/T0cM8MRpp+L2D5/crmFX3/HAU8qjOX4fVMIwLrs06adIkHTt2zLPl5+cHI8Sw03rwcd3xVr5uX/uvrVZKmTqN+lW3/M+hUIcHk8pKo/TNzprq0vu4V3uX3se1K/vCjyHCmvi9YVbI/tyrX7++oqOjK1TfhYWFFar0c5xOZ7XWfbWi0mKHjh2I9ewXfR+jI7tqyFnHrYTUMsXV9Z7gFhVjKL5+meo2Lw12qAiA1xfX14S5+dq7M167s2vp5jt/VnLjUr3993qXPhmWw+8dHOVyqNzES13MnBtIIUvkNWrUUNeuXbVhwwb96U9/8rRv2LBBgwYNClVYYaPwqzitvbOxZ/+TmQ0kSa3/VKQ/PF8YqrAQJJvX1lVC3XINf+wnJSWX6cCeOD11ZzMV/lAj1KEhAPi9gyNSu9ZDOgCTmZmpu+66S926dVPPnj21ePFiHTx4UKNHjw5lWGGhcY9TeuibfZc+8DeMi0eet5bX11vL64c6DAQJvzeqK6SJfMiQIfr555/1zDPP6Mcff1T79u21bt06paenhzIsAEAEKpe57vFy/4XiVyGfEjlmzBiNGTMm1GEAACIcXesAAFhYpC5jGp5RAQCAKqEiBwDYgmFyPXKDx88AAAgdutYBAEDYoSIHANiC2aVIw3UZUxI5AMAWyk2ufmbm3EAKz6gAAECVUJEDAGyBrnUAACzMrSi5TXREmzk3kMIzKgAAUCVU5AAAWyg3HCo30T1u5txAIpEDAGyBMXIAACzMMLn6mcGb3QAAgL9RkQMAbKFcDpWbWPjEzLmBRCIHANiC2zA3zu02/BiMH9G1DgCAhVGRAwBswW1yspuZcwMpPKMCAMDP3HKY3nyxZcsWDRw4UKmpqXI4HFqzZo3ns9LSUk2cOFEdOnRQrVq1lJqaqrvvvluHDh3y+XuRyAEACIDi4mJ17NhR8+fPr/DZyZMntW3bNk2ZMkXbtm3T66+/rr179+rWW2/1+T50rQMAbCHYb3bLyMhQRkZGpZ8lJiZqw4YNXm3z5s3TVVddpYMHD6pJkyZVvg+JHABgC+E+Rn7s2DE5HA7VqVPHp/NI5AAA+KCoqMhr3+l0yul0mrrm6dOn9eSTT2rYsGFyuVw+ncsYOQDAFtxyeN63Xq3tt8luaWlpSkxM9GxZWVmm4iotLdXQoUPldru1YMECn8+nIgcA2IJRjZnn558vSfn5+V5Vs5lqvLS0VHfccYfy8vL0wQcf+FyNSyRyAIBN+Gv1M5fLVa2Ee75zSfybb77Rxo0bVa9evWpdh0QOAEAAnDhxQvv27fPs5+Xlafv27UpKSlJqaqr+7d/+Tdu2bdNbb72l8vJyFRQUSJKSkpJUo0aNKt+HRA4AsIVgz1rPzs5Wv379PPuZmZmSpBEjRmjatGlau3atJKlTp05e523cuFF9+/at8n1I5AAAW/BX13pV9e3bV4Zx4ZVWLvaZL5i1DgCAhVGRAwBsoTrvSz///HBEIgcA2EKwu9aDha51AAAsjIocAGALkVqRk8gBALYQqYmcrnUAACyMihwAYAuRWpGTyAEAtmDI3CNk/nl9i/+RyAEAthCpFTlj5AAAWBgVOQDAFiK1IieRAwBsIVITOV3rAABYGBU5AMAWIrUiJ5EDAGzBMBwyTCRjM+cGEl3rAABYGBU5AMAWWI8cAAALi9QxcrrWAQCwMCpyAIAtROpkNxI5AMAWIrVrnUQOALCFSK3IGSMHAMDCIqIi/+/OzRXjiA11GAiwh77ZF+oQEESLe10T6hAQBIb7jFQYpHuZ7FoP14o8IhI5AACXYkgyDHPnhyO61gEAsDAqcgCALbjlkIM3uwEAYE3MWgcAAGGHihwAYAtuwyEHL4QBAMCaDMPkrPUwnbZO1zoAABZGRQ4AsIVInexGIgcA2AKJHAAAC4vUyW6MkQMAEABbtmzRwIEDlZqaKofDoTVr1nh9bhiGpk2bptTUVMXHx6tv3776+uuvfb4PiRwAYAvnZq2b2XxRXFysjh07av78+ZV+/vzzz2v27NmaP3++vvjiCzVs2FA33nijjh8/7tN96FoHANjC2WRsZozct+MzMjKUkZFxgWsZmjNnjiZPnqzbbrtNkrR8+XKlpKRoxYoVevDBB6t8HypyAAB8UFRU5LWVlJT4fI28vDwVFBSof//+njan06k+ffrok08+8elaJHIAgC2cm7VuZpOktLQ0JSYmerasrCyfYykoKJAkpaSkeLWnpKR4PqsqutYBALZgyNya4ufOzc/Pl8vl8rQ7nc5qX9Ph8O7qNwyjQtulkMgBAPCBy+XySuTV0bBhQ0lnK/NGjRp52gsLCytU6ZdC1zoAwBb81bXuD82aNVPDhg21YcMGT9uZM2e0efNmXXPNNT5di4ocAGAP/upbr6ITJ05o3759nv28vDxt375dSUlJatKkicaPH6+ZM2eqZcuWatmypWbOnKmaNWtq2LBhPt2HRA4AsAezVbWP52ZnZ6tfv36e/czMTEnSiBEjtGzZMj3xxBM6deqUxowZo6NHj6pHjx567733lJCQ4NN9SOQAAARA3759ZVzk4XOHw6Fp06Zp2rRppu5DIgcA2EKkrkdOIgcA2EKkrn7GrHUAACyMihwAYA+Gw+cJaxXOD0MkcgCALUTqGDld6wAAWBgVOQDAHoL8QphgqVIinzt3bpUvOG7cuGoHAwBAoETqrPUqJfIXXnihShdzOBwkcgAAgqhKiTwvLy/QcQAAEHhh2j1uRrUnu505c0Z79uxRWVmZP+MBACAgwmn1M3/yOZGfPHlSI0eOVM2aNXXFFVfo4MGDks6OjT/33HN+DxAAAL8w/LCFIZ8T+aRJk7Rjxw5t2rRJcXFxnvYbbrhBq1at8mtwAADg4nx+/GzNmjVatWqVrr76ajkc/+pmaNeunb799lu/BgcAgP84ftvMnB9+fE7khw8fVnJycoX24uJir8QOAEBYidDnyH3uWu/evbvefvttz/655L1kyRL17NnTf5EBAIBL8rkiz8rK0h//+Eft2rVLZWVlevHFF/X111/r008/1ebNmwMRIwAA5lGRn3XNNdfo448/1smTJ3X55ZfrvffeU0pKij799FN17do1EDECAGDeudXPzGxhqFrvWu/QoYOWL1/u71gAAICPqpXIy8vLtXr1au3evVsOh0Nt27bVoEGDFBPDGiwAgPAUqcuY+px5v/rqKw0aNEgFBQVq3bq1JGnv3r1q0KCB1q5dqw4dOvg9SAAATGOM/KxRo0bpiiuu0Pfff69t27Zp27Ztys/P15VXXqkHHnggEDECAIAL8Lki37Fjh7Kzs1W3bl1PW926dTVjxgx1797dr8EBAOA3ZieshelkN58r8tatW+unn36q0F5YWKgWLVr4JSgAAPzNYZjfwlGVKvKioiLP/z9z5kyNGzdO06ZN09VXXy1J2rp1q5555hnNmjUrMFECAGBWhI6RVymR16lTx+v1q4Zh6I477vC0Gb9N5Rs4cKDKy8sDECYAAKhMlRL5xo0bAx0HAACBFaFj5FVK5H369Al0HAAABJadu9Yrc/LkSR08eFBnzpzxar/yyitNBwUAAKqmWsuY3nvvvXrnnXcq/ZwxcgBAWIrQitznx8/Gjx+vo0ePauvWrYqPj9f69eu1fPlytWzZUmvXrg1EjAAAmGf4YQtDPlfkH3zwgd544w11795dUVFRSk9P14033iiXy6WsrCzdcsstgYgTAABUwueKvLi4WMnJyZKkpKQkHT58WNLZFdG2bdvm3+gAAPCXCF3GtFpvdtuzZ48kqVOnTnrppZf0ww8/aNGiRWrUqJHfA4S3ASOOaPnW3Xrzu52av36v2l91ItQhwQ8OfR6ndQ800vJrm2phyxbK21DrgsdufqqBFrZsoR1LE4MYIQKlfZejmjonVy+/t1nrcjeoZ9/CUIcUsSL1zW7VGiP/8ccfJUlTp07V+vXr1aRJE82dO1czZ870e4D4lz63HtXo6Ye0cm6yxvRvpa8+q6W/vJKnBo3PXPpkhLXSU1Gq16ZE1z19+KLH5W2opZ92xKlWSlmQIkOgxcWXK29vghY+1ybUocCifE7kw4cP1z333CNJ6ty5s/bv368vvvhC+fn5GjJkiE/X2rJliwYOHKjU1FQ5HA6tWbPG13Bs5bYHjujdlUlav6Ke8vfFadHUxjp8KFYD7v451KHBpPQ+J9Uj8xc1v6n4gsecKIjWh9Mb6IbZPykqJkxLA/gs++P6+vuCFvrkg5RQhxL5gjzZraysTE899ZSaNWum+Ph4NW/eXM8884zcbrd/vs9vfE7k56tZs6a6dOmi+vXr+3xucXGxOnbsqPnz55sNI+LFxLrV8sqTytmc4NWeszlB7bpd+H/8ERkMt/T+hBR1GnVUSS3pgQGsYNasWVq0aJHmz5+v3bt36/nnn9df//pXzZs3z6/3qdKs9czMzCpfcPbs2VU+NiMjQxkZGVU+3s5cSeWKjpF+PeL9k/16OEZ1k+lmjXS5i+sqKlrqMOJYqEMBLMshc+Pcvk51+/TTTzVo0CDP01xNmzbVypUrlZ2dXf0gKlGlRJ6bm1uli/1+YZVAKCkpUUlJiWf/96uy2YVx3n8IHQ6F7bON8I/DXzm1c3mibl+TrwD/VwxAFZyfe5xOp5xOZ4XjevXqpUWLFmnv3r1q1aqVduzYoY8++khz5szxazyWWjQlKytL06dPD3UYIVH0S7TKy6S6Dbyr78T6ZTp6uNpv2oUFHPoiTqd+jtbLfZp62oxyhz59rr6+XF5Hd246ELrgACvx06IpaWlpXs1Tp07VtGnTKhw+ceJEHTt2TG3atFF0dLTKy8s1Y8YM/fu//3v1Y6iEpTLApEmTvLr5i4qKKvyDRqqy0ih9s7OmuvQ+rk/W/+uxoy69j+vTd3kMKZK1Hnxcl117yqvt7ftS1WrQcbX+f+zXKwVUm59e0Zqfny+Xy+Vprqwal6RVq1bpf//3f7VixQpdccUV2r59u8aPH6/U1FSNGDHCRCDeLJXIL9R9YRevL66vCXPztXdnvHZn19LNd/6s5Malevvv9UIdGkwqLXbo2IFYz37R9zE6squGnHXcSkgtU1xd7wluUTGG4uuXqW7z0mCHCj+Liy9Tatq//lBLaXxKzVsd1/GiGB0uiA9hZLgQl8vllcgvZMKECXryySc1dOhQSWdfnHbgwAFlZWXZN5Hb3ea1dZVQt1zDH/tJScllOrAnTk/d2UyFP9QIdWgwqfCrOK29s7Fn/5OZDSRJrf9UpD88zwtCIlnLdkWa9bccz/4Df94rSdqwtpFemNo+VGFFpiAvmnLy5ElFRXk/HBYdHe33x89CmshPnDihffv2efbz8vK0fft2JSUlqUmTJiGMLHy9tby+3lru+6N+CG+Ne5zSQ9/su/SBv2FcPHJ8mZOkmzvfGOowbMHs29l8PXfgwIGaMWOGmjRpoiuuuEK5ubmaPXu27rvvvuoHUYmQJvLs7Gz169fPs39u/HvEiBFatmxZiKICAMC8efPmacqUKRozZowKCwuVmpqqBx98UE8//bRf71OtRP7yyy9r0aJFysvL06effqr09HTNmTNHzZo106BBg6p8nb59+8o4/3kqAAACIchd6wkJCZozZ47fHzc7n89vdlu4cKEyMzN1880369dff1V5ebkkqU6dOgEPFgCAaovQ9ch9TuTz5s3TkiVLNHnyZEVHR3vau3Xrpi+//NKvwQEAgIvzuWs9Ly9PnTt3rtDudDpVXMw7vwEA4SnYk92CxeeKvFmzZtq+fXuF9nfeeUft2rXzR0wAAPjfuTe7mdnCkM8V+YQJEzR27FidPn1ahmHo888/18qVK5WVlaW//e1vgYgRAADzgjzZLVh8TuT33nuvysrK9MQTT+jkyZMaNmyYGjdurBdffNHz9hoAABAc1Xr87P7779f999+vI0eOyO12Kzk52d9xAQDgV5E6Rm7qhTD16/OGMQCARdC1flazZs0uuu74d999ZyogAABQdT4n8vHjx3vtl5aWKjc3V+vXr9eECRP8FRcAAP5lsms9YiryRx99tNL2//qv/1J2drbpgAAACIgI7Vr3+TnyC8nIyNBrr73mr8sBAIAq8NvqZ//85z+VlJTkr8sBAOBfEVqR+5zIO3fu7DXZzTAMFRQU6PDhw1qwYIFfgwMAwF94/Ow3gwcP9tqPiopSgwYN1LdvX7Vp08ZfcQEAgCrwKZGXlZWpadOmuummm9SwYcNAxQQAAKrIp8luMTExeuihh1RSUhKoeAAACAzWIz+rR48eys3NDUQsAAAEzLkxcjNbOPJ5jHzMmDF6/PHH9f3336tr166qVauW1+dXXnml34IDAAAXV+VEft9992nOnDkaMmSIJGncuHGezxwOhwzDkMPhUHl5uf+jBADAH8K0qjajyol8+fLleu6555SXlxfIeAAACAy7P0duGGe/QXp6esCCAQAAvvFpjPxiq54BABDOeCGMpFatWl0ymf/yyy+mAgIAICDs3rUuSdOnT1diYmKgYgEAAD7yKZEPHTpUycnJgYoFAICAsX3XOuPjAABLi9Cu9Sq/2e3crHUAABA+qlyRu93uQMYBAEBgRWhF7vMrWgEAsCLbj5EDAGBpEVqR+7z6GQAACB9U5AAAe4jQipxEDgCwhUgdI6drHQAACyORAwDswfDD5qMffvhBd955p+rVq6eaNWuqU6dOysnJMf9dfoeudQCALQS7a/3o0aO69tpr1a9fP73zzjtKTk7Wt99+qzp16lQ/iEqQyAEACIBZs2YpLS1NS5cu9bQ1bdrU7/ehax0AYA9+6lovKiry2kpKSiq93dq1a9WtWzfdfvvtSk5OVufOnbVkyRK/fy0SOQDAHvyUyNPS0pSYmOjZsrKyKr3dd999p4ULF6ply5Z69913NXr0aI0bN05///vf/fq16FoHAMAH+fn5crlcnn2n01npcW63W926ddPMmTMlSZ07d9bXX3+thQsX6u677/ZbPFTkAABbcPhhkySXy+W1XSiRN2rUSO3atfNqa9u2rQ4ePOjX70VFDgCwhyC/2e3aa6/Vnj17vNr27t2r9PR0E0FUREUOALCFc4+fmdl88dhjj2nr1q2aOXOm9u3bpxUrVmjx4sUaO3asX78XiRwAgADo3r27Vq9erZUrV6p9+/Z69tlnNWfOHA0fPtyv96FrHQBgDyFYNGXAgAEaMGCAiZteGokcAGAfYbrwiRl0rQMAYGFU5AAAW4jUZUxJ5AAAewjBGHkw0LUOAICFUZEDAGyBrnUAAKyMrnUAABBuqMhhGQtbtgh1CAiidw+9F+oQEARFx92q2yo496JrHQAAK4vQrnUSOQDAHiI0kTNGDgCAhVGRAwBsgTFyAACsjK51AAAQbqjIAQC24DAMOYzql9Vmzg0kEjkAwB7oWgcAAOGGihwAYAvMWgcAwMroWgcAAOGGihwAYAt0rQMAYGUR2rVOIgcA2EKkVuSMkQMAYGFU5AAAe6BrHQAAawvX7nEz6FoHAMDCqMgBAPZgGGc3M+eHIRI5AMAWmLUOAADCDhU5AMAemLUOAIB1OdxnNzPnhyO61gEAsDAqcgCAPURo1zoVOQDAFs7NWjezVVdWVpYcDofGjx/vt+9zDhU5AMAeQvQc+RdffKHFixfryiuvrP69L4KKHACAADlx4oSGDx+uJUuWqG7dugG5B4kcAGAL/upaLyoq8tpKSkoueM+xY8fqlltu0Q033BCw70UiBwDYg+GHTVJaWpoSExM9W1ZWVqW3+8c//qFt27Zd8HN/YYwcAAAf5Ofny+VyefadTmelxzz66KN67733FBcXF9B4SOQAAFvw17vWXS6XVyKvTE5OjgoLC9W1a1dPW3l5ubZs2aL58+erpKRE0dHR1Q/md0jkAAB7COKs9euvv15ffvmlV9u9996rNm3aaOLEiX5L4hKJHAAAv0tISFD79u292mrVqqV69epVaDeLRA4AsIVIXcaURA4AsIcQv6J106ZN5i5wATx+BgCAhVGRAwBsga51AACszG2c3cycH4ZI5AAAe2AZUwAAEG6oyAEAtuCQyTFyv0XiXyRyAIA9hGg98kCjax0AAAujIgcA2AKPnwEAYGXMWgcAAOGGihwAYAsOw5DDxIQ1M+cGEokcAGAP7t82M+eHIbrWAQCwMCpyAIAt0LUOAICVReisdRI5AMAeeLMbAAAIN1TkAABb4M1uCAsDRhzR7Q8dVlJyqQ7sjdOip1P11ee1Qx0WAoDfOjJ9ubWW/r8Fyfrmy5r65adYTf3vPF2TcczrmIPfOPXff0nVzq21Zbil9NanNXnRfiVfVhqiqCMEXev+l5WVpe7duyshIUHJyckaPHiw9uzZE8qQwlqfW49q9PRDWjk3WWP6t9JXn9XSX17JU4PGZ0IdGvyM3zpynT4ZpeZXnNLYGd9X+vmh/TWUObil0lqc1l//uU8L/2+Pho3/STXiwjOJIPRCmsg3b96ssWPHauvWrdqwYYPKysrUv39/FRcXhzKssHXbA0f07sokrV9RT/n74rRoamMdPhSrAXf/HOrQ4Gf81pGr+x+O656JBep187FKP1/2XCNd9YcijZryo1p0OKVG6WfU44Yi1alfFuRII4/DbX4LRyHtWl+/fr3X/tKlS5WcnKycnBz17t07RFGFp5hYt1peeVKr5id7tedsTlC7bvzhE0n4re3L7ZY+f9+l28cU6v/99+ba91W8GjY5o6EPF1bofkc10LUeeMeOnf0PalJSUqWfl5SUqKioyGuzC1dSuaJjpF+PeP/t9evhGNVN5i/1SMJvbV+/HonRqeJorZqfrG79jitr5Xe69o/H9Myoptr5aa1Qh4cwFTaJ3DAMZWZmqlevXmrfvn2lx2RlZSkxMdGzpaWlBTnK0Dv/D0KHQ2H7kgKYw29tP8ZvXbc9byrSbQ8c1uXtT2nII4XqcUOR3v57/dAGFwkMP2xhKGwS+cMPP6ydO3dq5cqVFzxm0qRJOnbsmGfLz88PYoShVfRLtMrLpLoNvCuyxPplOnqYhw8iCb+1fZ3tjTGU3uq0V3tay9Mq/CE2RFFFjnOvaDWzhaOwSOSPPPKI1q5dq40bN+qyyy674HFOp1Mul8trs4uy0ih9s7OmuvQ+7tXepfdx7cqmyy2S8FvbV2wNQ606ntT33zq92n/4zsmjZ7igkP55bxiGHnnkEa1evVqbNm1Ss2bNQhlO2Ht9cX1NmJuvvTvjtTu7lm6+82clNy7V23+vF+rQ4Gf81pHrVHGUDuX9K1EX5NfQt1/FK6FOmZIvK9XtYwo1c3S62l99Qh2vOaHsjS5t3ZCov/5zXwijjhAROtktpIl87NixWrFihd544w0lJCSooKBAkpSYmKj4+PhQhhaWNq+tq4S65Rr+2E9KSi7TgT1xeurOZir8oUaoQ4Of8VtHrr07auqJf2vh2X9pWmNJ0o13/KI/zzmoazOOadxz3+sf81O0cMpluqx5iaYsyVP7HjyxYJohc2uKh2cel8MwQvcnhsPhqLR96dKluueeey55flFRkRITE9VXgxTjYPwIiCTvHtoe6hAQBEXH3arb6jsdO3YsYMOl53LFHzo/qZjouGpfp6z8tD7IfS6gsVZHyLvWAQBA9TEFFgBgD4ZMjpH7LRK/IpEDAOwhQie7hcXjZwAAoHqoyAEA9uCWVPkc66qfH4aoyAEAthDsN7sFa6luEjkAAAEQrKW66VoHANhDkCe7BWupbhI5AMAeQjxr/VJLdVcXiRwAAB8UFRV57TudTjmdzgscfVZVluquLsbIAQD2cK4iN7NJSktLU2JiomfLysq65K2rslR3dVGRAwDswU+Pn+Xn53u9a/1S1fi5pbq3bNly0aW6q4tEDgCwheo8Qnb++ZLkcrmqtGhKsJbqJpEDABAAwVqqmzFyAIA9+GmMvKoWLlyoY8eOqW/fvmrUqJFnW7VqlV+/FhU5AMAe3IbkMPEImdu3c4O1VDcVOQAAFkZFDgCwhwhdxpREDgCwCZOJXOGZyOlaBwDAwqjIAQD2QNc6AAAW5jZkqnvcx1nrwULXOgAAFkZFDgCwB8N9djNzfhgikQMA7IExcgAALIwxcgAAEG6oyAEA9kDXOgAAFmbIZCL3WyR+Rdc6AAAWRkUOALAHutYBALAwt1uSiWfB3eH5HDld6wAAWBgVOQDAHuhaBwDAwiI0kdO1DgCAhVGRAwDsIUJf0UoiBwDYgmG4ZZhYwczMuYFEIgcA2INhmKuqGSMHAAD+RkUOALAHw+QYeZhW5CRyAIA9uN2Sw8Q4d5iOkdO1DgCAhVGRAwDsga51AACsy3C7ZZjoWg/Xx8/oWgcAwMKoyAEA9kDXOgAAFuY2JEfkJXK61gEAsDAqcgCAPRiGJDPPkYdnRU4iBwDYguE2ZJjoWjdI5AAAhJDhlrmKnMfPAACwnQULFqhZs2aKi4tT165d9eGHH/r1+iRyAIAtGG7D9OarVatWafz48Zo8ebJyc3N13XXXKSMjQwcPHvTb9yKRAwDswXCb33w0e/ZsjRw5UqNGjVLbtm01Z84cpaWlaeHChX77WpYeIz838aBMpaae8QcQfoqOh+d4JPyr6MTZ3zkYE8nM5ooylUqSioqKvNqdTqecTmeF48+cOaOcnBw9+eSTXu39+/fXJ598Uv1AzmPpRH78+HFJ0kdaF+JIAPhb3VahjgDBdPz4cSUmJgbk2jVq1FDDhg31UYH5XFG7dm2lpaV5tU2dOlXTpk2rcOyRI0dUXl6ulJQUr/aUlBQVFBSYjuUcSyfy1NRU5efnKyEhQQ6HI9ThBE1RUZHS0tKUn58vl8sV6nAQQPzW9mHX39owDB0/flypqakBu0dcXJzy8vJ05swZ09cyDKNCvqmsGv+984+v7BpmWDqRR0VF6bLLLgt1GCHjcrls9V94O+O3tg87/taBqsR/Ly4uTnFxcQG/z+/Vr19f0dHRFarvwsLCClW6GUx2AwAgAGrUqKGuXbtqw4YNXu0bNmzQNddc47f7WLoiBwAgnGVmZuquu+5St27d1LNnTy1evFgHDx7U6NGj/XYPErkFOZ1OTZ069ZLjMrA+fmv74LeOTEOGDNHPP/+sZ555Rj/++KPat2+vdevWKT093W/3cBjh+vJYAABwSYyRAwBgYSRyAAAsjEQOAICFkcgBALAwErnFBHo5PISHLVu2aODAgUpNTZXD4dCaNWtCHRICJCsrS927d1dCQoKSk5M1ePBg7dmzJ9RhwUJI5BYSjOXwEB6Ki4vVsWNHzZ8/P9ShIMA2b96ssWPHauvWrdqwYYPKysrUv39/FRcXhzo0WASPn1lIjx491KVLF6/l79q2bavBgwcrKysrhJEhkBwOh1avXq3BgweHOhQEweHDh5WcnKzNmzerd+/eoQ4HFkBFbhHnlsPr37+/V7u/l8MDEFrHjh2TJCUlJYU4ElgFidwigrUcHoDQMQxDmZmZ6tWrl9q3bx/qcGARvKLVYgK9HB6A0Hn44Ye1c+dOffTRR6EOBRZCIreIYC2HByA0HnnkEa1du1Zbtmyx9fLM8B1d6xYRrOXwAASXYRh6+OGH9frrr+uDDz5Qs2bNQh0SLIaK3EKCsRwewsOJEye0b98+z35eXp62b9+upKQkNWnSJISRwd/Gjh2rFStW6I033lBCQoKn1y0xMVHx8fEhjg5WwONnFrNgwQI9//zznuXwXnjhBR5RiUCbNm1Sv379KrSPGDFCy5YtC35ACJgLzXFZunSp7rnnnuAGA0sikQMAYGGMkQMAYGEkcgAALIxEDgCAhZHIAQCwMBI5AAAWRiIHAMDCSOQAAFgYiRwwadq0aerUqZNn/5577gnJ2uH79++Xw+HQ9u3bL3hM06ZNNWfOnCpfc9myZapTp47p2BwOh9asWWP6OgAqIpEjIt1zzz1yOBxyOByKjY1V8+bN9ec//1nFxcUBv/eLL75Y5bevVSX5AsDF8K51RKw//vGPWrp0qUpLS/Xhhx9q1KhRKi4u1sKFCyscW1paqtjYWL/cNzEx0S/XAYCqoCJHxHI6nWrYsKHS0tI0bNgwDR8+3NO9e647/H/+53/UvHlzOZ1OGYahY8eO6YEHHlBycrJcLpf+8Ic/aMeOHV7Xfe6555SSkqKEhASNHDlSp0+f9vr8/K51t9utWbNmqUWLFnI6nWrSpIlmzJghSZ6Vrjp37iyHw6G+fft6zlu6dKnatm2ruLg4tWnTRgsWLPC6z+eff67OnTsrLi5O3bp1U25urs//RrNnz1aHDh1Uq1YtpaWlacyYMTpx4kSF49asWaNWrVopLi5ON954o/Lz870+f/PNN9W1a1fFxcWpefPmmj59usrKynyOB4DvSOSwjfj4eJWWlnr29+3bp1dffVWvvfaap2v7lltuUUFBgdatW6ecnBx16dJF119/vX755RdJ0quvvqqpU6dqxowZys7OVqNGjSok2PNNmjRJs2bN0pQpU7Rr1y6tWLHCs4b8559/Lkn6v//7P/344496/fXXJUlLlizR5MmTNWPGDO3evVszZ87UlClTtHz5cklScXGxBgwYoNatWysnJ0fTpk3Tn//8Z5//TaKiojR37lx99dVXWr58uT744AM98cQTXsecPHlSM2bM0PLly/Xxxx+rqKhIQ4cO9Xz+7rvv6s4779S4ceO0a9cuvfTSS1q2bJnnjxUAAWYAEWjEiBHGoEGDPPufffaZUa9ePeOOO+4wDMMwpk6dasTGxhqFhYWeY95//33D5XIZp0+f9rrW5Zdfbrz00kuGYRhGz549jdGjR3t93qNHD6Njx46V3ruoqMhwOp3GkiVLKo0zLy/PkGTk5uZ6taelpRkrVqzwanv22WeNnj17GoZhGC+99JKRlJRkFBcXez5fuHBhpdf6vfT0dOOFF1644OevvvqqUa9ePc/+0qVLDUnG1q1bPW27d+82JBmfffaZYRiGcd111xkzZ870us7LL79sNGrUyLMvyVi9evUF7wug+hgjR8R66623VLt2bZWVlam0tFSDBg3SvHnzPJ+np6erQYMGnv2cnBydOHFC9erV87rOqVOn9O2330qSdu/eXWH99549e2rjxo2VxrB7926VlJTo+uuvr3Lchw8fVn5+vkaOHKn777/f015WVuYZf9+9e7c6duyomjVresXhq40bN2rmzJnatWuXioqKVFZWptOnT6u4uFi1atWSJMXExKhbt26ec9q0aaM6depo9+7duuqqq5STk6MvvvjCqwIvLy/X6dOndfLkSa8YAfgfiRwRq1+/flq4cKFiY2OVmppaYTLbuUR1jtvtVqNGjbRp06YK16ruI1jx8fE+n+N2uyWd7V7v0aOH12fR0dGSJMMPqw8fOHBAN998s0aPHq1nn31WSUlJ+uijjzRy5EivIQip8jWzz7W53W5Nnz5dt912W4Vj4uLiTMcJ4OJI5IhYtWrVUosWLap8fJcuXVRQUKCYmBg1bdq00mPatm2rrVu36u677/a0bd269YLXbNmypeLj4/X+++9r1KhRFT6vUaOGpLMV7DkpKSlq3LixvvvuOw0fPrzS67Zr104vv/yyTp065flj4WJxVCY7O1tlZWX6z//8T0VFnZ0u8+qrr1Y4rqysTNnZ2brqqqskSXv27NGvv/6qNm3aSDr777Znzx6f/q0B+A+JHPjNDTfcoJ49e2rw4MGaNWuWWrdurUOHDmndunUaPHiwunXrpkcffVQjRoxQt27d1KtXL73yyiv6+uuv1bx580qvGRcXp4kTJ+qJJ55QjRo1dO211+rw4cP6+uuvNXLkSCUnJys+Pl7r16/XZZddpri4OCUmJmratGkaN26cXC6XMjIyVFJSouzsbB09elSZmZkaNmyYJk+erJEjR+qpp57S/v379R//8R8+fd/LL79cZWVlmjdvngYOHKiPP/5YixYtqnBcbGysHnnkEc2dO1exsbF6+OGHdfXVV3sS+9NPP60BAwYoLS1Nt99+u6KiorRz5059+eWX+stf/uL7DwHAJ8xaB37jcDi0bt069e7dW/fdd59atWqloUOHav/+/Z5Z5kOGDNHTTz+tiRMnqmvXrjpw4IAeeuihi153ypQpevzxx/X000+rbdu2GjJkiAoLCyWdHX+eO3euXnrpJaWmpmrQoEGSpFGjRulvf/ubli1bpg4dOqhPnz5atmyZ53G12rVr680339SuXbvUuXNnTZ48WbNmzfLp+3bq1EmzZ8/WrFmz1L59e73yyivKysqqcFzNmjU1ceJEDRs2TD179lR8fLz+8Y9/eD6/6aab9NZbb2nDhg3q3r27rr76as2ePVvp6ek+xQOgehyGPwbbAABASFCRAwBgYSRyAAAsjEQOAICFkcgBALAwEjkAABZGIgcAwMJI5AAAWBiJHAAACyORAwBgYSRyAAAsjEQOAICFkcgBALCw/x8t9bHFABwITAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(confusion_matrix(y_test,predictions))\n",
    "disp = ConfusionMatrixDisplay(confusion_matrix=confusion_matrix(y_test,predictions), display_labels=['0','1','2'])\n",
    "disp.plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c705c7b2-5a9b-4e15-8277-a4b487ec7568",
   "metadata": {},
   "source": [
    "## 作业"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "id": "e48ffd5b-c0b8-46ee-bd84-ec194cea657e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "      <th>12</th>\n",
       "      <th>13</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>14.23</td>\n",
       "      <td>1.71</td>\n",
       "      <td>2.43</td>\n",
       "      <td>15.6</td>\n",
       "      <td>127</td>\n",
       "      <td>2.80</td>\n",
       "      <td>3.06</td>\n",
       "      <td>0.28</td>\n",
       "      <td>2.29</td>\n",
       "      <td>5.64</td>\n",
       "      <td>1.04</td>\n",
       "      <td>3.92</td>\n",
       "      <td>1065</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>13.20</td>\n",
       "      <td>1.78</td>\n",
       "      <td>2.14</td>\n",
       "      <td>11.2</td>\n",
       "      <td>100</td>\n",
       "      <td>2.65</td>\n",
       "      <td>2.76</td>\n",
       "      <td>0.26</td>\n",
       "      <td>1.28</td>\n",
       "      <td>4.38</td>\n",
       "      <td>1.05</td>\n",
       "      <td>3.40</td>\n",
       "      <td>1050</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>13.16</td>\n",
       "      <td>2.36</td>\n",
       "      <td>2.67</td>\n",
       "      <td>18.6</td>\n",
       "      <td>101</td>\n",
       "      <td>2.80</td>\n",
       "      <td>3.24</td>\n",
       "      <td>0.30</td>\n",
       "      <td>2.81</td>\n",
       "      <td>5.68</td>\n",
       "      <td>1.03</td>\n",
       "      <td>3.17</td>\n",
       "      <td>1185</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>14.37</td>\n",
       "      <td>1.95</td>\n",
       "      <td>2.50</td>\n",
       "      <td>16.8</td>\n",
       "      <td>113</td>\n",
       "      <td>3.85</td>\n",
       "      <td>3.49</td>\n",
       "      <td>0.24</td>\n",
       "      <td>2.18</td>\n",
       "      <td>7.80</td>\n",
       "      <td>0.86</td>\n",
       "      <td>3.45</td>\n",
       "      <td>1480</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>13.24</td>\n",
       "      <td>2.59</td>\n",
       "      <td>2.87</td>\n",
       "      <td>21.0</td>\n",
       "      <td>118</td>\n",
       "      <td>2.80</td>\n",
       "      <td>2.69</td>\n",
       "      <td>0.39</td>\n",
       "      <td>1.82</td>\n",
       "      <td>4.32</td>\n",
       "      <td>1.04</td>\n",
       "      <td>2.93</td>\n",
       "      <td>735</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>173</th>\n",
       "      <td>3</td>\n",
       "      <td>13.71</td>\n",
       "      <td>5.65</td>\n",
       "      <td>2.45</td>\n",
       "      <td>20.5</td>\n",
       "      <td>95</td>\n",
       "      <td>1.68</td>\n",
       "      <td>0.61</td>\n",
       "      <td>0.52</td>\n",
       "      <td>1.06</td>\n",
       "      <td>7.70</td>\n",
       "      <td>0.64</td>\n",
       "      <td>1.74</td>\n",
       "      <td>740</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>174</th>\n",
       "      <td>3</td>\n",
       "      <td>13.40</td>\n",
       "      <td>3.91</td>\n",
       "      <td>2.48</td>\n",
       "      <td>23.0</td>\n",
       "      <td>102</td>\n",
       "      <td>1.80</td>\n",
       "      <td>0.75</td>\n",
       "      <td>0.43</td>\n",
       "      <td>1.41</td>\n",
       "      <td>7.30</td>\n",
       "      <td>0.70</td>\n",
       "      <td>1.56</td>\n",
       "      <td>750</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>175</th>\n",
       "      <td>3</td>\n",
       "      <td>13.27</td>\n",
       "      <td>4.28</td>\n",
       "      <td>2.26</td>\n",
       "      <td>20.0</td>\n",
       "      <td>120</td>\n",
       "      <td>1.59</td>\n",
       "      <td>0.69</td>\n",
       "      <td>0.43</td>\n",
       "      <td>1.35</td>\n",
       "      <td>10.20</td>\n",
       "      <td>0.59</td>\n",
       "      <td>1.56</td>\n",
       "      <td>835</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>176</th>\n",
       "      <td>3</td>\n",
       "      <td>13.17</td>\n",
       "      <td>2.59</td>\n",
       "      <td>2.37</td>\n",
       "      <td>20.0</td>\n",
       "      <td>120</td>\n",
       "      <td>1.65</td>\n",
       "      <td>0.68</td>\n",
       "      <td>0.53</td>\n",
       "      <td>1.46</td>\n",
       "      <td>9.30</td>\n",
       "      <td>0.60</td>\n",
       "      <td>1.62</td>\n",
       "      <td>840</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>177</th>\n",
       "      <td>3</td>\n",
       "      <td>14.13</td>\n",
       "      <td>4.10</td>\n",
       "      <td>2.74</td>\n",
       "      <td>24.5</td>\n",
       "      <td>96</td>\n",
       "      <td>2.05</td>\n",
       "      <td>0.76</td>\n",
       "      <td>0.56</td>\n",
       "      <td>1.35</td>\n",
       "      <td>9.20</td>\n",
       "      <td>0.61</td>\n",
       "      <td>1.60</td>\n",
       "      <td>560</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>178 rows × 14 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     0      1     2     3     4    5     6     7     8     9      10    11  \\\n",
       "0     1  14.23  1.71  2.43  15.6  127  2.80  3.06  0.28  2.29   5.64  1.04   \n",
       "1     1  13.20  1.78  2.14  11.2  100  2.65  2.76  0.26  1.28   4.38  1.05   \n",
       "2     1  13.16  2.36  2.67  18.6  101  2.80  3.24  0.30  2.81   5.68  1.03   \n",
       "3     1  14.37  1.95  2.50  16.8  113  3.85  3.49  0.24  2.18   7.80  0.86   \n",
       "4     1  13.24  2.59  2.87  21.0  118  2.80  2.69  0.39  1.82   4.32  1.04   \n",
       "..   ..    ...   ...   ...   ...  ...   ...   ...   ...   ...    ...   ...   \n",
       "173   3  13.71  5.65  2.45  20.5   95  1.68  0.61  0.52  1.06   7.70  0.64   \n",
       "174   3  13.40  3.91  2.48  23.0  102  1.80  0.75  0.43  1.41   7.30  0.70   \n",
       "175   3  13.27  4.28  2.26  20.0  120  1.59  0.69  0.43  1.35  10.20  0.59   \n",
       "176   3  13.17  2.59  2.37  20.0  120  1.65  0.68  0.53  1.46   9.30  0.60   \n",
       "177   3  14.13  4.10  2.74  24.5   96  2.05  0.76  0.56  1.35   9.20  0.61   \n",
       "\n",
       "       12    13  \n",
       "0    3.92  1065  \n",
       "1    3.40  1050  \n",
       "2    3.17  1185  \n",
       "3    3.45  1480  \n",
       "4    2.93   735  \n",
       "..    ...   ...  \n",
       "173  1.74   740  \n",
       "174  1.56   750  \n",
       "175  1.56   835  \n",
       "176  1.62   840  \n",
       "177  1.60   560  \n",
       "\n",
       "[178 rows x 14 columns]"
      ]
     },
     "execution_count": 118,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 利用pandas导入csv数据，查看前5行导入结果看是否正常\n",
    "import pandas as pd\n",
    "data = pd.read_csv(\"D:/Pythonwork/homework/homework/wine.txt\",header=None)\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "id": "603de9e6-6467-4a93-8c39-3d770f657f04",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3,\n",
       "       3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n",
       "       3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n",
       "       3, 3], dtype=int64)"
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "Y_lab=np.array(data[0])\n",
    "Y_lab"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "id": "3eb07a8c-023d-456d-9948-0207e4a00b75",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1.423e+01, 1.710e+00, 2.430e+00, ..., 1.040e+00, 3.920e+00,\n",
       "        1.065e+03],\n",
       "       [1.320e+01, 1.780e+00, 2.140e+00, ..., 1.050e+00, 3.400e+00,\n",
       "        1.050e+03],\n",
       "       [1.316e+01, 2.360e+00, 2.670e+00, ..., 1.030e+00, 3.170e+00,\n",
       "        1.185e+03],\n",
       "       ...,\n",
       "       [1.327e+01, 4.280e+00, 2.260e+00, ..., 5.900e-01, 1.560e+00,\n",
       "        8.350e+02],\n",
       "       [1.317e+01, 2.590e+00, 2.370e+00, ..., 6.000e-01, 1.620e+00,\n",
       "        8.400e+02],\n",
       "       [1.413e+01, 4.100e+00, 2.740e+00, ..., 6.100e-01, 1.600e+00,\n",
       "        5.600e+02]])"
      ]
     },
     "execution_count": 120,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_data=np.array(data.iloc[:,1:14])\n",
    "X_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "id": "02a15133-13d1-431d-a3e6-088bfd76b86e",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "std = StandardScaler()\n",
    "X_data = std.fit_transform(X_data*1.0) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "id": "1ef5ef88-3156-4370-88d2-7a9b17fd1995",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import scipy\n",
    "from scipy.cluster import hierarchy\n",
    "dendro=hierarchy.dendrogram(hierarchy.linkage(X_data,method='ward'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "id": "f5dd2aa5-d731-440d-85cb-d5682ed39334",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(178, 2)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.decomposition import PCA \n",
    "pca = PCA(n_components=2)\n",
    "X_pca = pca.fit_transform(X_data)\n",
    "print(X_pca.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "id": "fd94e3f6-a885-41ad-a571-fc362fa6cdfc",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Python\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-19 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-19 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-19 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-19 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-19 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-19 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-19 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-19 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-19 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-19 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-19 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-19 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-19 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-19 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-19 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-19 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-19 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-19 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-19 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-19 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-19 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-19 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-19 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-19 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-19 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-19 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-19\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>KMeans(n_clusters=3)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-19\" type=\"checkbox\" checked><label for=\"sk-estimator-id-19\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;KMeans<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.cluster.KMeans.html\">?<span>Documentation for KMeans</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>KMeans(n_clusters=3)</pre></div> </div></div></div></div>"
      ],
      "text/plain": [
       "KMeans(n_clusters=3)"
      ]
     },
     "execution_count": 154,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.cluster import KMeans\n",
    "kmeans = KMeans(n_clusters=3)\n",
    "kmeans.fit(X_pca)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "id": "95210248-e244-41a8-9404-55d6d5a0a5d1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[-2.74392982 -1.2141906 ]\n",
      " [ 2.26614991 -0.86559213]\n",
      " [-0.16278513  1.76758824]]\n",
      "[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
      " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1\n",
      " 2 2 2 2 2 2 2 2 2 0 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2\n",
      " 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
      " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n"
     ]
    }
   ],
   "source": [
    "# 查看模型结果\n",
    "print(kmeans.cluster_centers_) #k个类中心点\n",
    "print(kmeans.labels_)  #每一个样本所属的聚类编号"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "id": "f905ed71-38e5-4f71-b98d-8c213f5885c3",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import sklearn\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "id": "2ccdd7b1-e176-4e21-81c5-7fa387d7b491",
   "metadata": {},
   "outputs": [],
   "source": [
    "cluster_pred=kmeans.predict(X_pca)\n",
    "cluster_pred_2=kmeans.labels_\n",
    "cluster_center=kmeans.cluster_centers_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "id": "2a205eb5-c3ea-43ed-830a-9fc3da5eb6fa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-2.74392982, -1.2141906 ],\n",
       "       [ 2.26614991, -0.86559213],\n",
       "       [-0.16278513,  1.76758824]])"
      ]
     },
     "execution_count": 162,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cluster_center"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 164,
   "id": "d74c45e9-1ac3-4c46-a51a-9ddff453ce3e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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oQE//PBDp+tedtllqKurwzvvvNNmeWFhYcvjck2aNAlBQUFYsWJFl+vFx8d3eG1/+ukn/Pjjj51uExUVheuvvx733nsvqqurUVFRAeD3BBrtX99LL70UAPDGG2+0Wb5t2zbs2bPHrefnjMlkwsSJE/HNN99g+PDhTt9HR/DmqjPOOAO33HILbrzxRvz444/dBodERL6AWfKIiHRk/PjxWLFiBe655x6MHj0ad999N8455xw0Njbim2++wSuvvIJzzz2307v3ffv2xeWXX46lS5ciOjoagwYNwsaNG1FUVNRmvW+//RazZ8/Gn//8Z6SkpCAkJASbNm3Ct99+iwceeKBlvWHDhmHNmjX497//jcTERISFhWHYsGGYM2cO1q1bh4svvhjZ2dkYPnw4mpubceDAAWzYsAHz5s3DuHHjunyut99+O4xGIy644AL069cPR44cwdKlSxEZGYnzzz+/0+1mzpyJ//u//0NGRgYqKiowbNgwfP7553jqqacwdepUXH755TJecUl8fDweeughPP7447Db7bjxxhsRGRmJ3bt3o7KyEkuWLAEgDSO8+eabcc899yA9PR379+/Hs88+29JD5fCnP/0J5557LsaMGYPY2Fjs378fOTk5GDRoEFJSUlpeWwDIzc1FRkYGgoODcdZZZ+Gss87CHXfcgfz8fBgMBkyZMqUlS97AgQORnZ0t+/l1Jjc3FxdeeCEuuugi3H333YiPj0dtbS327duH9957D5s2bep2H+PGjcOVV16J4cOHIzo6Gnv27MHrr7+O8ePHw2QyqdZWIiKv8W7OCSIicqakpETMyMgQzzzzTDEkJETs2bOnOGrUKHHRokXi0aNHW9Zrn51NFEXx8OHD4vXXXy/GxMSIkZGR4s033yxu3769TZa8X3/9VbzlllvEs88+W+zZs6cYHh4uDh8+XHz++efFU6dOteyroqJCnDRpkhgRESECEAcNGtTyWF1dnfjII4+IZ511lhgSEiJGRkaKw4YNE7Ozs8UjR460rAdAvPfeezs8x4KCAnHixIniGWecIYaEhIj9+/cXp02bJn777bfdvj5VVVXiXXfdJfbr10/s0aOHOGjQIPHBBx8U6+vr26znapY8h8LCQvH8888Xw8LCxPDwcHHUqFEtr5koimJzc7P47LPPiomJiWJYWJg4ZswYcdOmTR3eh+eee06cMGGC2Lt3bzEkJEQ888wzxVtvvVWsqKhoc7wHH3xQ7N+/v2gwGNpkN2xqahKfeeYZcfDgwWJwcLDYu3dv8eabbxZ//vlnl57foEGDxLS0tA7Lnb0X5eXl4l//+ldxwIABYnBwsBgbGytOmDBBfOKJJ1rWcWTJ+89//tNhnw888IA4ZswYMTo6WgwNDRUTExPF7OxssbKystPXmYjIlwii2G4QOBEREREREQHgHCYiIiIiIqJOMWAiIiIiIiLqBAMmIiIiIiKiTjBgIiIiIiIi6gQDJiIiIiIiok4wYCIiIiIiIupEQBWubW5uxi+//IKIiAgIguDt5hARERERkZeIooja2lr0798fBkPn/UgBFTD98ssvGDhwoLebQUREREREOvHzzz8jLi6u08cDKmCKiIgAIL0ovXr18nJriIiIiIjIW44fP46BAwe2xAidCaiAyTEMr1evXgyYiIiIiIio26k6TPpARERERETUCQZMREREREREnWDARERERERE1ImAmsNERERERNQdURRx6tQpNDU1ebsppEBQUBB69OihuJwQAyYiIiIiotMaGhpw+PBh2Gw2bzeFVGAymdCvXz+EhIS4vQ8GTEREREREAJqbm1FeXo6goCD0798fISEhinsnyDtEUURDQwN+++03lJeXIyUlpcvitF1hwEREREREBKl3qbm5GQMHDoTJZPJ2c0gho9GI4OBg7N+/Hw0NDQgLC3NrP0z6QERERETUirs9EaQ/aryX/DQQERERERF1gkPyiIiIiIjUJopAVRVQVweEhwNmM8D5UD6JPUxERERERGqxWoHcXCAlBYiNBRISpH9TUqTlVqvHm1RRUQFBEFBSUuLxY/sDnw2Yli5dCkEQMGfOHG83hYiIiIgIsFiAuDggOxsoK2v7WFmZtDwuTlrPh61atQpRUVGaHuO+++7D6NGjERoaipEjR2p6rO74ZMC0bds2vPLKKxg+fLi3m0JEREREJAVBaWmA3S4NxxPFto87ltnt0no+HjSpoampCc3NzU4fE0URf/3rXzF9+nQPt6ojnwuY6urqMGPGDLz66quIjo72dnOIiIiIKNBZrUB6uhQQdRIAtGhultZLT1d1eF5zczOeeeYZJCcnIzQ0FGeeeSaefPJJp+s66yF655132tSc2rVrFyZOnIiIiAj06tULo0ePxvbt27F582bMmjULx44dgyAIEAQBixcvBiClZV+4cCEGDBiAnj17Yty4cdi8eXOH477//vsYOnQoQkNDsX//fqdtzMvLw7333ovExERFr4safC5guvfee5GWlobLL7+823VPnjyJ48ePt/khIiIiIlJVQQFgs3UfLDk0N0vrFxaq1oQHH3wQzzzzDB599FHs3r0bq1evxhlnnOH2/mbMmIG4uDhs27YNO3bswAMPPIDg4GBMmDABOTk56NWrFw4fPozDhw9j/vz5AIBZs2bhiy++wJo1a/Dtt9/iz3/+MyZPnoy9e/e27Ndms2Hp0qV47bXX8MMPP6BPnz6Kn7vWfCpL3po1a7Bz505s27bNpfWXLl2KJUuWaNwqIiIiIgpYogjk57u3bV4ekJmpOHtebW0tcnNz8cILLyAjIwMAkJSUhAsvvNDtfR44cAALFizA2WefDQBISUlpeSwyMhKCIKBv374ty0pLS/Hmm2/i4MGD6N+/PwBg/vz5+PDDD7Fy5Uo89dRTAIDGxka8+OKLGDFihNtt8zSf6WH6+eefcd999+GNN95wuUrvgw8+iGPHjrX8/Pzzzxq3koiIiIgCSlUVUFracc5Sd0RR2q66WnET9uzZg5MnT+Kyyy5TvC+HuXPn4rbbbsPll1+Op59+GqWlpV2uv3PnToiiiMGDByM8PLzl55NPPmmzbUhIiM/lIfCZHqYdO3bg6NGjGD16dMuypqYmfPrpp3jhhRdw8uRJBAUFtdkmNDQUoaGhnm4qERGRLKIoospehbqGOoSHhMNsNLeZS0BEOlZXp2z72lqpRpMCRqNR1voGgwFiuwCvsbGxze+LFy/GTTfdhOLiYnzwwQd47LHHsGbNGlx77bVO99nc3IygoCDs2LGjwzV5eHh4m7b62vebzwRMl112Gb777rs2y2bNmoWzzz4b999/f4c3hoiISO+s9VYUlBQg/+t8lNb8fgc2KToJmWMzkTEyA1FhUd5rIBF1r1Uw4JaICMVNSElJgdFoxMaNG3Hbbbd1u35sbCxqa2tx4sQJ9OzZEwCc1mgaPHgwBg8ejOzsbNx4441YuXIlrr32WoSEhKCpqanNuqNGjUJTUxOOHj2Kiy66SPFz0hOfCZgiIiJw7rnntlnWs2dPmM3mDsuJiIj0zrLPgvS16bA12jo8VlZThmxLNh7e9DDWTVuH1ORUL7SQiFxiNgNJSVKdJTnD8gQBSEwEYmIUNyEsLAz3338/Fi5ciJCQEFxwwQX47bff8MMPP+DWW2/tsP64ceNgMpnw0EMPITMzE19//TVWrVrV8rjdbseCBQtw/fXXIyEhAQcPHsS2bduQnp4OAIiPj0ddXR02btyIESNGwGQyYfDgwZgxYwZmzpyJ5557DqNGjUJlZSU2bdqEYcOGYerUqbKe0759+1BXV4cjR47Abre3BHRDhw5FSEiI26+VO3xmDhMREZG/sOyzIG11GuyNdoin/2vNsczeaEfa6jRY9rFeC5FuCYKUuMEdWVmKEz44PProo5g3bx4WLVqEIUOGYPr06Th69KjTdWNiYvDGG29g/fr1GDZsGN58882W1OAAEBQUhKqqKsycORODBw/GtGnTMGXKlJZkahMmTMBdd92F6dOnIzY2Fs8++ywAYOXKlZg5cybmzZuHs846C1dddRW2bt2KgQMHyn4+t912G0aNGoWXX34ZP/30E0aNGoVRo0bhl19+kf/iKCSI7Qcw+rHjx48jMjISx44dQ69evbzdHCIiCkDWeivilsfB3mhHM7pPQWyAAcZgIw7OPcjheUQaq6+vR3l5ORISElxOMgZAqqcUFycVpXUltbjBABiNwMGDQLt6SKSurt5TV2MD9jARERF5UEFJAWyNNpeCJQBoRjNsjTYU7lKvXgsRqSwqCli3TuotMnRzeW0wSOsVFTFY8hEMmIiIiDxEFEXkf+1evZa8rXkdsloRkY6kpgLFxVLPkSB0HGrnWGY0AuvXA5MmeaedJBsDJiIiIg+pslehtKa0w5yl7ogQUVpTimq78notRKSh1FRpmF1OjpTQobXERGn5oUMMlnyMz2TJIyIi8nV1DcrqtdQ21MJsUlavhYg0FhUlJXPIzJSK0tbWSqnDY2JUS/BAnsWAiYiIyEPCQ5TVa4kIUV6vhYg8RBCklOMKi9KS93FIHhERkYeYjWYkRSdBgLy7zAIEJEUnIcaovF4LERHJw4CJiIjIQwRBQOZY9+q1ZI3LgsDhPEREHseAiYiIyIMyRmbAFGyCwcVTsEEwwBRswswRMzVuGREROcOAiYiIyIOiwqKwbto6CILQbdBkgAECBBRNL2LRWiIfI4pAZSVQUSH9y6oAvosBExERkYelJqei+KZiGIONEE7/15pjmTHYiPUz1mNSElMQE/kKqxXIzQVSUoDYWCAhQfo3JUVabrV6vk0VFRUQBAElJSWeP7gfYMBERETkBanJqTg49yByJucgMbptvZbE6ETkTM7BobmHGCwR+RCLBYiLA7KzgbKyto+VlUnL4+Kk9XzZqlWrEBUVpdn+d+3ahRtvvBEDBw6E0WjEkCFDkJubq9nxusO04kRERF4SFRaFrHFZyBybiWp7NWobahEREoEYYwwTPBD5GIsFSEuTht45G37nWGa3S+sVF0t1bgNZU1OTNDzZ0LYPZ8eOHYiNjcUbb7yBgQMH4ssvv8Qdd9yBoKAgzJ492+PtZA8TERGRlwmCALPJjPioeJhNZgZLRD7GagXS06WgqLm563Wbm6X10tPVHZ7X3NyMZ555BsnJyQgNDcWZZ56JJ5980um6znqI3nnnnTbfPbt27cLEiRMRERGBXr16YfTo0di+fTs2b96MWbNm4dixYxAEAYIgYPHixQCAhoYGLFy4EAMGDEDPnj0xbtw4bN68ucNx33//fQwdOhShoaHYv39/h/b99a9/RV5eHi655BIkJibi5ptvxqxZs1BUVKT4dXIHe5iIiIiIiBQoKABsNtcTOzQ3S+sXFgJZWeq04cEHH8Srr76K559/HhdeeCEOHz6M//3vf27vb8aMGRg1ahRWrFiBoKAglJSUIDg4GBMmTEBOTg4WLVqEH3/8EQAQHi4V5Z41axYqKiqwZs0a9O/fH2+//TYmT56M7777DikpKQAAm82GpUuX4rXXXoPZbEafPn1cas+xY8cQE+OdWnQMmIiIiIiI3CSKQH6+e9vm5QGZmYDSTuXa2lrk5ubihRdeQEZGBgAgKSkJF154odv7PHDgABYsWICzzz4bAFoCHgCIjIyEIAjo27dvy7LS0lK8+eabOHjwIPr37w8AmD9/Pj788EOsXLkSTz31FACgsbERL774IkaMGOFyW7766iusXbsWxcXFbj8fJRgwERERERG5qaoKKC2Vv50oSttVVwNms7I27NmzBydPnsRll12mbEetzJ07F7fddhtef/11XH755fjzn/+MpKSkTtffuXMnRFHE4MGD2yw/efIkzK2eYEhICIYPH+5yO3744QdcffXVWLRoEa644gr5T0QFDJiIiIiIiNxUV6ds+9pa5QGT0WiUtb7BYIDYbvxgY2Njm98XL16Mm266CcXFxfjggw/w2GOPYc2aNbj22mud7rO5uRlBQUHYsWMHgoKC2jzmGLLnaKur8zR3796NSy+9FLfffjseeeQRl7bRApM+EBERERG5qVUs4JaICOVtSElJgdFoxMaNG11aPzY2FrW1tThx4kTLMmc1mgYPHozs7Gxs2LAB1113HVauXAlA6iVqampqs+6oUaPQ1NSEo0ePIjk5uc1P66F7rvrhhx8wceJEZGRkdJq8wlMYMBERERERuclsBpKS5M9DEgRpOzXyGISFheH+++/HwoULUVhYiNLSUmzZsgX/+Mc/nK4/btw4mEwmPPTQQ9i3bx9Wr16NVatWtTxut9sxe/ZsbN68Gfv378cXX3yBbdu2YciQIQCA+Ph41NXVYePGjaisrITNZsPgwYMxY8YMzJw5E0VFRSgvL8e2bdvwzDPPYP369bKejyNYuuKKKzB37lwcOXIER44cwW+//eb2a6QEAyYiIiIiIjcJgpS4wR1ZWcoTPjg8+uijmDdvHhYtWoQhQ4Zg+vTpOHr0qNN1Y2Ji8MYbb2D9+vUYNmwY3nzzzZbU4AAQFBSEqqoqzJw5E4MHD8a0adMwZcoULFmyBAAwYcIE3HXXXZg+fTpiY2Px7LPPAgBWrlyJmTNnYt68eTjrrLNw1VVXYevWrRg4cKCs5/Kf//wHv/32G/71r3+hX79+LT/nn3++ey+OQoLYfgCjHzt+/DgiIyNx7Ngx9OrVy9vNISIiIiIdqa+vR3l5ORISEhAWFubydlYrEBcnFaXtrg4TABgMgNEIHDwItCuHRCrr6j11NTZgDxMRERERkQJRUcC6dVJvkaGbq2uDQVqvqIjBkq9gwEREREREpFBqKlBcLPUcCULHoXaOZUYjsH49MGmSd9pJ8jFgIiIiIiJSQWqqNMwuJwdITGz7WGKitPzQIQZLvoZ1mIiIiIiIVBIVJSVzyMyUitLW1kqpw2Ni1EvwQJ7FgImIiIiISGWCIKUcV1qUlryPQ/KIiIiIiIg6wYCJiIiIiIioExySR0RERESkMlEUUWWvQl1DHcJDwmE2miFwEpNPYsBERERERKQSa70VBSUFyP86H6U1pS3Lk6KTkDk2ExkjMxAVFuW9BpJsHJJHRERERKQCyz4L4pbHIduSjbKasjaPldWUIduSjbjlcbDss3i0XRUVFRAEASUlJR49rr9gwEREREREpJBlnwVpq9Ngb7RDPP1fa45l9kY70laneTxoUtOqVasQFRWl2f6rqqowefJk9O/fH6GhoRg4cCBmz56N48ePa3bMrjBgIiIi8mOiKKLSVokKawUqbZUQRbH7jYhIFmu9Felr0yGKIprR3OW6zWiGKIpIX5sOa73VMw3UqaamJjQ3d3y9DAYDrr76avz3v//FTz/9hFWrVuH//b//h7vuussLrWTARERE5Jes9VbkbslFSn4KYpfFIiE3AbHLYpGSn4LcLbkBf6FGpKaCkgLYGm3dBksOzWiGrdGGwl2FqrWhubkZzzzzDJKTkxEaGoozzzwTTz75pNN1nfUQvfPOO22SUuzatQsTJ05EREQEevXqhdGjR2P79u3YvHkzZs2ahWPHjkEQBAiCgMWLFwMAGhoasHDhQgwYMAA9e/bEuHHjsHnz5g7Hff/99zF06FCEhoZi//79HdoXHR2Nu+++G2PGjMGgQYNw2WWX4Z577sFnn32m+HVyB5M+EBER+RnLPgvS16bD1mjr8JhjHsXDmx7GumnrkJqc6oUWEvkPURSR/3W+W9vmbc1D5thMVbLnPfjgg3j11Vfx/PPP48ILL8Thw4fxv//9z+39zZgxA6NGjcKKFSsQFBSEkpISBAcHY8KECcjJycGiRYvw448/AgDCw8MBALNmzUJFRQXWrFmD/v374+2338bkyZPx3XffISUlBQBgs9mwdOlSvPbaazCbzejTp0+3bfnll19QVFSESy65xO3nowQDJiIiIj/imEchih3nUABoWeaYR1F8UzGDJiIFquxVbbLhuUqEiNKaUlTbq2E2mRW1oba2Frm5uXjhhReQkZEBAEhKSsKFF17o9j4PHDiABQsW4OyzzwaAloAHACIjIyEIAvr27duyrLS0FG+++SYOHjyI/v37AwDmz5+PDz/8ECtXrsRTTz0FAGhsbMSLL76IESNGdNuGG2+8Ee+++y7sdjv+9Kc/4bXXXnP7+SjBIXlERER+gvMoiDyvrqFO0fa1DbWK27Bnzx6cPHkSl112meJ9OcydOxe33XYbLr/8cjz99NMoLe06KNy5cydEUcTgwYMRHh7e8vPJJ5+02TYkJATDhw93qQ3PP/88du7ciXfeeQelpaWYO3euoufkLvYwERER+QnHPApnPUvOtJ5HkTUuS+PWEfmn8JBwRdtHhEQoboPRaJS1vsFg6JAAprGxsc3vixcvxk033YTi4mJ88MEHeOyxx7BmzRpce+21TvfZ3NyMoKAg7NixA0FBQW0ecwzZc7TV1SGIffv2Rd++fXH22WfDbDbjoosuwqOPPop+/fq5tL1a2MNERETkB5TOo2D2PCL3mI1mJEUnQYC8eUgCBCRFJyHGGKO4DSkpKTAajdi4caNL68fGxqK2thYnTpxoWeasRtPgwYORnZ2NDRs24LrrrsPKlSsBSL1ETU1NbdYdNWoUmpqacPToUSQnJ7f5aT10z12O76iTJ08q3pdcDJiIiIj8gGMehau9Sw6t51EQkXyCICBzbKZb22aNy1Il4UNYWBjuv/9+LFy4EIWFhSgtLcWWLVvwj3/8w+n648aNg8lkwkMPPYR9+/Zh9erVWLVqVcvjdrsds2fPxubNm7F//3588cUX2LZtG4YMGQIAiI+PR11dHTZu3IjKykrYbDYMHjwYM2bMwMyZM1FUVITy8nJs27YNzzzzDNavXy/r+axfvx4rV67E999/j4qKCqxfvx533303LrjgAsTHx7v7MrmNARMREZEf0MM8CqJAlTEyA6ZgEwwuXlobBANMwSbMHDFTtTY8+uijmDdvHhYtWoQhQ4Zg+vTpOHr0qNN1Y2Ji8MYbb2D9+vUYNmwY3nzzzZbU4AAQFBSEqqoqzJw5E4MHD8a0adMwZcoULFmyBAAwYcIE3HXXXZg+fTpiY2Px7LPPAgBWrlyJmTNnYt68eTjrrLNw1VVXYevWrRg4cKCs52I0GvHqq6/iwgsvxJAhQzBnzhxceeWVeP/99917cRQSxADqgz9+/DgiIyNx7Ngx9OrVy9vNISIiUk2lrRKxy2Ld335BpeJMXUS+rr6+HuXl5UhISEBYWJisbVtnqOwq6YoBBgiCgPUz1mNS0iSlTaZudPWeuhobsIeJiIjID+hhHgVRIEtNTkXxTcUwBhshnP6vNccyY7CRwZKPYcBERETkB/Qwj4Io0KUmp+Lg3IPImZyDxOjENo8lRiciZ3IODs09xGDJx3BIHhERkZ+w1lsRtzwO9kZ7t3WYAGkehbGHEQfnHkRUWJT2DSTSOSVD8toTxVocq98B26kamHpEIzJsNARBeQpxkodD8oiIiKhFVFgU1k1bB0EQup18boABAgQUTS9isESkmt0AsgAkQxAiEWWciP4R1yHKOBGCEAkg+fTju73aSpKHARMREZEf4TwKIm8oBzAJwDkAVgAoBTqk+BdPL19xer1Jp7cjvWPARERE5Gc4j4LIk14DMBTAx6d/P9XN+o7HPz693WsatYvU0sPbDSAiIiL1RYVFIWtcFjLHZqLaXo3ahlpEhEQgxhjDBA9EqnkSwCNubnvq9M/tAH4F8LBajSKVMWAiIiLyY4IgwGwys8YSkepeg/vBUnuPAOgL4FaV9kdq4pA8IiIiIiJZygG4l8a/c7PBOU36xICJiIiIiEiWO9H9XCW5Tp3eb2DZvHkzBEGA1WrtdJ1Vq1YhKirKY21qjwETEREREZHLdgP4CNoETB8B2KNoL0eOHEFmZiYSExMRGhqKgQMH4k9/+hM2btyoSisB4I9//CPmzJmjyr4mTJiAw4cPIzIyUpX9aYFzmIiIiIiIXPYSpEtotQMmnN7vCgB5bm1dUVGBCy64AFFRUXj22WcxfPhwNDY2wmKx4N5778X//vc/VVvbFVEU0dTUhB49ug43QkJC0LdvXw+1yj3sYSIiIiIictl6aBMs4fR+P3B763vuuQeCIODrr7/G9ddfj8GDB+Occ87B3LlzsWXLFgDAsWPHcMcdd6BPnz7o1asXLr30UuzatatlH4sXL8bIkSPx+uuvIz4+HpGRkbjhhhtQW1sLALjlllvwySefIDc3F4IgQBAEVFRUtAyts1gsGDNmDEJDQ/HZZ5/h5MmTyMrKQp8+fRAWFoYLL7wQ27ZtazmesyF5q1atwplnngmTyYRrr70WVVVVbZ7nrl27MHHiRERERKBXr14YPXo0tm/f7vbr1h0GTEREPkoURVTaKlFhrUClrRKi2L5IIhERqasWQJnGxygFUCd7q+rqanz44Ye499570bNnzw6PR0VFQRRFpKWl4ciRI1i/fj127NiB8847D5dddhmqq6t/b0FpKd555x28//77eP/99/HJJ5/g6aefBgDk5uZi/PjxuP3223H48GEcPnwYAwcObNl24cKFWLp0Kfbs2YPhw4dj4cKFWLduHQoKCrBz504kJycjNTW1zfFa27p1K/7617/innvuQUlJCSZOnIgnnniizTozZsxAXFwctm3bhh07duCBBx5AcHCw7NfMVRySR0TkY6z1VhSUFCD/63yU1pS2LE+KTkLm2ExkjMxAVFiU9xpIROS3SgFofXNKBLAPwEhZW+3btw+iKOLss8/udJ2PP/4Y3333HY4ePYrQ0FAAwN///ne88847eOutt3DHHXcAAJqbm7Fq1SpEREQAAP7yl79g48aNePLJJxEZGYmQkBCYTCanQ+n+9re/4YorrgAAnDhxAitWrMCqVaswZcoUAMCrr76Kjz76CP/4xz+wYMGCDtvn5uYiNTUVDzzwAABg8ODB+PLLL/Hhhx+2rHPgwAEsWLCg5bmmpKTIeq3kYg8TEZEPseyzIG55HLIt2SiraXuXs6ymDNmWbMQtj4Nln8VLLSQi8mcndXscxyiDrgpT79ixA3V1dTCbzQgPD2/5KS8vR2np7zfg4uPjW4IlAOjXrx+OHj3qUjvGjBnT8v+lpaVobGzEBRdc0LIsODgYY8eOxZ49zpNb7NmzB+PHj2+zrP3vc+fOxW233YbLL78cTz/9dJu2a4EBExGRj7DssyBtdRrsjXaIp/9rzbHM3mhH2uo0Bk1ERKoL1e1xUlJSIAhCp4EIIPUc9evXDyUlJW1+fvzxxza9Pe2HtwmCgObmZpfa0Xo4YGdBnCiKnQZ2rgwvX7x4MX744QekpaVh06ZNGDp0KN5++22X2ucOBkxERD7AWm9F+tp0iKKIZnR90mpGM0RRRPradFjrrZ5pIBFRQEgG0HkPjjqE08eRJyYmBqmpqfi///s/nDhxosPjVqsV5513Ho4cOYIePXogOTm5zU/v3r1dPlZISAiampq6XS85ORkhISH4/PPPW5Y1NjZi+/btGDJkiNNthg4d2pKgwqH974A0VC87OxsbNmzAddddh5UrV7rcfrkYMBER+YCCkgLYGm3dBksOzWiGrdGGwl2FGreMiCiQhANI1PgYSaePI9+LL76IpqYmjB07FuvWrcPevXuxZ88e5OXlYfz48bj88ssxfvx4XHPNNbBYLKioqMCXX36JRx55RFaWufj4eGzduhUVFRWorKzstPepZ8+euPvuu7FgwQJ8+OGH2L17N26//XbYbDbceuutTrfJysrChx9+iGeffRY//fQTXnjhhTbzl+x2O2bPno3Nmzdj//79+OKLL7Bt27ZOAzA1MGAiItI5URSR/3W+W9vmbc1j9jwiIlVNhXZ503oAmOL21gkJCdi5cycmTpyIefPm4dxzz8UVV1yBjRs3YsWKFRAEAevXr8fFF1+Mv/71rxg8eDBuuOEGVFRU4IwzznD5OPPnz0dQUBCGDh2K2NhYHDhwoNN1n376aaSnp+Mvf/kLzjvvPOzbtw8WiwXR0dFO1//DH/6A1157Dfn5+Rg5ciQ2bNiARx55pOXxoKAgVFVVYebMmRg8eDCmTZuGKVOmYMmSJa6/UDIJYgCdSY8fP47IyEgcO3YMvXr18nZziIhcUmmrROyyWPe3X1AJs8msYouIiPxTfX09ysvLkZCQgLCwsE7W2g3gHA1bsRuAdr0lgaar99TV2IA9TEREOlfXIL8eR2u1DbUqtYSIiIChAK6A+r1MPU7vl8GS3jBgIiLSufAQ98ayO0SERHS/EhERyfAytAmYXlZ5n6QGnwmYVqxYgeHDh6NXr17o1asXxo8fjw8++MDbzSIi0pzZaEZSdBIEmZmZBAhIik5CjDFGo5YREQWqBADuzS3t3Aun90t64zMBU1xcHJ5++mls374d27dvx6WXXoqrr74aP/zwg7ebRkSkKUEQkDk2061ts8ZldVnEkIiI3HUbgCdU2teTAJxnjSPv85mA6U9/+hOmTp2KwYMHY/DgwXjyyScRHh7uNC87EZG/yRiZAVOwCQYXv7YNggGmYBNmjpipccuIiPyP6znRHgbwKoAwyB+i1+P0dq8BeEjmtuQqNfLb+UzA1FpTUxPWrFmDEydOYPz48Z2ud/LkSRw/frzNDxGRL4oKi8K6aesgCEK3QZMBBggQUDS9CFFhUZ5pIBGRHwgODgYA2Gw2GVvdBimz3cTTv3cXODken3h6O/YsacnxXjreW3dolUReE9999x3Gjx+P+vp6hIeH4+2338bQoUM7XX/p0qWa5mQnIvKk1ORUFN9UjPS16bA1SicAEb/fOXPMcTIGG1E0vQiTkiZ5pZ1ERL4qKCgIUVFROHr0KADAZDK5OKy5H4D/QhD2ICjoVRgMGyAIZRCE37+jRVGAKCaiuXkSmprugCieffqRetWfB0k9SzabDUePHkVUVBSCgoLc3pdP1WFqaGjAgQMHYLVasW7dOrz22mv45JNPOg2aTp48iZMnT7b8fvz4cQwcOJB1mIjIp1nrrSjcVYi8rXkorSltWZ4UnYSscVnIGJGByLBIL7aQiMh3iaKII0eOwGq1KtqPIJxASMgBCEIDRDEEDQ1nQhR7qtNIcllUVBT69u3rNPB1tQ6TTwVM7V1++eVISkrCyy+7loKRhWuJyJ+IoohqezVqG2oRERKBGGMMEzwQEamkqakJjY2N3m4GKRAcHNxlz5KrsYFPDclrTxTFNj1IRESBRBAEmE1mmE1mbzeFiMjvBAUFKRrGRf7DZwKmhx56CFOmTMHAgQNRW1uLNWvWYPPmzfjwww+93TQiIiIiIvJTPhMw/frrr/jLX/6Cw4cPIzIyEsOHD8eHH36IK664wttNIyIilYmiiCp7Feoa6hAeEg6z0czhhkRE5BU+EzD94x//8HYTiIhIY9Z6KwpKCpD/dX6HhBaZYzORMTKDqdKJiMijfDrpg1xM+kBEpF+WfZZuU6abgk1YN20dUpNTvdJGIiLyH67GBj5ZuJaIiPyLZZ8FaavTYG+0Qzz9X2uOZfZGO9JWp8Gyz+KllhIRUaBhwERERF5lrbcifW06RFFEM5q7XLcZzRBFEelr02Gtt3qmgUREFNAYMBERkVcVlBTA1mjrNlhyaEYzbI02FO4q1LhlREREDJiIiMiLRFFE/tf5bm2btzUPATQNl4iIvIQBExEReU2VvQqlNaUd5ix1R4SI0ppSVNurNWoZERGRhAETERF5TV1DnaLtaxtqVWoJERGRcwyYiIjIa8JDwhVtHxESoVJLiIiInGPAREREXmM2mpEUndRSZ8lVAgQkRSchxhijUcuIiIgkDJiIiKgNURRRaatEhbUClbZKTRMrCIKAzLGZbm2bNS4LgiAv0CIiIpKLARMREQGQ6iHlbslFSn4KYpfFIiE3AbHLYpGSn4LcLbma1T3KGJkBU7AJBhdPSQbBAFOwCTNHzNSkPURERK0xYCIiIlj2WRC3PA7ZlmyU1ZS1eayspgzZlmzELY+DZZ9F9R6oqLAorJu2DoIgdBs0GWCAAAFF04sQFRal6LhERESuEMQAKmJx/PhxREZG4tixY+jVq5e3m0NEpAuWfRakrU6DKIpdFo81wAARIvqG98XhusMty5Oik5A5NhMZIzMUBTGWfRakr02HrdEGAG1SjTvmOJmCTSiaXoRJSZPcPg4RERHgemzAgImIKIBZ662IWx4He6O9y2CpK62DmXXT1iE1OVVRewp3FSJvax5Ka0pblidFJyFrXBYyRmQgMizS7f0TERE5MGByggETEVFbuVtykW3Jll041hkDDBAEAcU3FSsKmgAp8US1vRq1DbWICIlAjDGGCR6IiEhVrsYGnMNERBSgRFFE/tf5qu2vGc0QRRHpa9MVJ4gQBAFmkxnxUfEwm8wMloiIyGsYMBERBagqexVKa0pV6V1yaEYzbI02FO4qVG2fRERE3sSAiYgoQNU11Gm277yteZrWbyIiIvIUBkxERAEqPCRck/2KEFFaU4pqe7Um+yd98GSBYyIib+rh7QYQEZF3mI1mJEUnoaymTNVheQ61DbUwm8yq75e8y1pvRUFJAfK/zu+QyVCN9PJERHrDHiYiogAlCAIyx2Zqtv+IkAjN9k3eIafAMRGRv2DAREQUwDJGZsAUbIJBxdOBAAFJ0UmIMcaotk/yPkeBY3ujHeLp/1pzLLM32pG2Oo1BExH5DQZMREQBLCosCuumrYMgCKoGTVnjspgK3I9Y661IX5sOURS7LXCsZnp5IiI9YMBERBTgUpNTUXxTMYzBRgin/3OXQTDAFGzCzBEzVWwheVtBSQFsjbZugyUHppcnIn/CgImIiJCanIqDcw8iZ3IOEqMT2zzWL7yfS4GUAQYIEFA0vYiT/v2IkgLHTC9PRP5AEAPom+z48eOIjIzEsWPH0KtXL283h4hIl0RRRLW9GrUNtYgIiUCMMQYbSjcgfW06bI02aZ1W81ccgZQp2ISi6UWYlDTJK+0mbVTaKhG7LNb97RdUMlsiEemSq7EBe5iIiKgNQRBgNpkRHxUPs8kMQRC67IFKjE5EzuQcHJp7iMGSH1Ja4Li2oVallhAReQfrMBER+RFRFFFlr0JdQx3CQ8JhNppVS74QFRaFrHFZyByb2aEHigke/JfSAsdML09Evo4BExGRH/BkMVFHD1QgDbPSMhDVO3cLHAsQkBidyPTyROTzOCSPiMjHsZiodqz1VuRuyUVKfgpil8UiITcBsctikZKfgtwtuQGRNltJgWOmlycif8CkD0REPsxRTLS7+jgGGCAIAopvKkZqcqoHW+i7LPssLiW6WDdtnd+/ptZ6K+KWx8HeaHcptbhBMMDYw4iDcw8yYyIR6RaTPhAR+TkWE9WOIxC1N9ohnv6vNccye6MdaavT/L73Tk6BY6aXJyJ/w4CJiMhHeauYqCiKqLRVosJagUpbJURRdLrMV/lzIKrkfequwLFjmTHYiPUz1jNjIhH5DSZ9ICLyQUqLiWaOzZQ9t6SzxBJmo5T8ocpe1bJMi2QTnuIIRF1NcNA6EM0al6Vx69yjVlIQR3r5wl2FyNua12ZfidGJyBqXhYwRGYgMi9TiaRAReQXnMBER+SBPFxPtaj6PM746x0cURaTkp7idEW5v5l7dJTnQai6WswLHenvuRERd4RwmIiI/5sliot3N53HGV+f4VNmrUFpTKitYAqTnW1pTimp7tUYtc4+Wc7GcFTgmIvJHDJiIiHyQp4qJypnP44yvzfHxZCCqNX+ei0VE5EkMmIiIfJCjmGj7iffdESAgKTrJ5WKichNLOKNWsgktOZIhKO0hcjUQ9QRvJQUhIvI3DJiIiHyQJ4qJKkks4Uze1jzdZc9rX5h29Cuj3dqP3EBUazX2Gjz+6eOyhxYC+nyfiIi8iQETEZGPyhiZAVOwqdu6OA4GwQBTsAkzR8x0aX135/M4o8c5PpZ9FsQtj0O2JRtlNWWK9+dqIKo1x/NqnbXQVXp8n4iIvI0BExGRj9K6mKjS+TzO6GWOjzuJLDojNxDVUsvzOmVXtB+9vE9ERHrAgImIyIdpWUxUaWIJZ/Qwx0dpIovW3AlEtdL6eSntFdTD+0REpBcMmIiIfJyjmGjO5BwkRie2eSwxOhE5k3NwaO4hWcES8HtiCbUIELDt0DbV9ucuNRJZKAlEtaLW89LTXCwiIj1g4VoiIj/irJgoIM1HqmuoQ3hIOMxG12vm5G7JxRzLHFXaJkCAQTCg+KZirxWydbcwbXtJ0UnIGpeFjBEZiAyLVLGF7lHreQkQkDM5B1njslRsHRGRPrkaGzBgIiLyU9Z6KwpKCpD/dT5Ka0pblidFJyFzbCYyRmZ0O4ysxl4D87NmVRI/ANIQNmOwEQfnHvTKELZKWyVil8W6vf3OO3bizMgzEWOM0UWCBwelzwuQ5mIZe3R8b0RRdDvgJiLSM1djAw7JIyLyQ11lgCurKUO2JRtxy+Ng2Wfpcj9NYpNqwRLg/Vo/ShNZRBujYTbpL2BQ+rwcQwxbz8Vqn3I9ITcBsctikZKfgtwtuSxwS0QBgwETEZGf6S4DnGOZvdGOtNVpXQZNWmTKA7xX60dpIgu9JkNQ+rzaz8VSK+AmIvIHDJiIiPyInAxwzWiGKIpIX5veaW+BFpnyvFnrx5HIon02we7oPRmCu8/Lse2h7ENtgiW1Am4iIn/AgImIyI/IzZTW3RA5s9GM+Mh4FVv4uz2Ve1Bpq/RoT5MgCMgcm+nWtnopTOuMkue16JJFiDJGAVA/4NaSKIqotFWiwlrh8c8REQUWBkxERH5CFEXkf53v1radDZETBAGj+o1S2jSnLlp5kVfmxGSMzIAp2NRtsV8HpYVpPXVh787z6hncs83zUjvg1gLnVhGRpzFgIiLyE1X2KpTWlMpO0tDVEDlRFFFypESlFjrn6TkxUWFRWDdtHQRB6Da4UFKY1tMX9kqflxYBt9o4t4qIvIEBExGRn1CaoKG2obbDsip7Fcqt5Yr22x1vzIlJTU5F8U3FMAYbWzLEtaa0MK23LuyVPC8tAm41cW4VEXkLAyYiIhn0PG9CiwxwWmXJc0bpnBi5701qcioOzj2InMk5SIxObPNYYnQicibn4NDcQ24FS968sHf3eWkRcKvFl+ZWEZH/YeFaIiIXqFEEVmuiKCIlPwVlNWWyegkECEiMTsTezL0dkhqoURBVLgECcibnIGtclkvrq/HeiKKIans1ahtqERES4XZhWmu9FXHL42BvtLs0D0jrQr5ynpfS97pyQSXMJrPb23cld0susi3Zsj/Xcj5HRBR4WLiWiEglvjJvQosMcErSVSvh6pwYtd4bQRBgNpkRHxWvqDCtO0kTTjSe0CxpgpznpdeU674wt4qI/BsDJiKiLnh7eJVcameAUxKEucvVOTF6e2+UXNg//fnTXr+w12vKdb3PrSIi/8eAiYioE744b0KLDHDuBmHrb1ovp+kddDUnRo/vjbsX9gBwuO4w3tr9lgatksfTKdddoee5VUQUGBgwERF1whdq0jijdgY4d4Kwt6e/jfMHnK/oeThLQuGgx/dG6YX9Le/e4vUkBZ5KuS6HFslMiIjkYMBEROSEr8+bUDsDnDtBmFZzYvT63ii9sLc32r0ebAPap1yXS69zq4gocDBgIiJywh/mTUSFRSFrXBb2Zu5F5YJKlN9XjsoFldibuRdZ47IQGRYpa39ygzCt5sTo9b1xXNgroXWw7Wrqda1SrrtDr3OriChwMK04EZETFdYKJOQmuL19+X3liI+KV69BOuNqumrZabYFA4w9uk6zref3JndLLuZY5ijahxbpuZWkXlcr5boSWnyOiIiYVpyISAHOm+iaq+mqtZgTo+f3JmNkBow9jIr2oXaSAqWp19VKua6EHudWEVHgYMBEROQE502oR+05MXp+b6LCorDq6lWK9qFmQKe31OtK6G1uFREFDgZMREROcN6EutScE6P39+bP5/wZ/cL7yd5O7YBOj6nXldLT3CoiChycw0RE1AnOm9CGGnNi9P7e5G7JRbYlW1ZiCgECcibnIGtclt+0QUt6mFtFRL7N7+YwLV26FOeffz4iIiLQp08fXHPNNfjxxx+93Swi8mOcN+E6R/a18ppy/Fj5I8pryjvNwqbGnBi9vzfeLgCr19TratLD3CoiCgw+EzB98sknuPfee7FlyxZ89NFHOHXqFCZNmoQTJ054u2lE5Mc4b6Jr1norcrfkIjE3EbHLYpGYl4iz/+9sJOZJvyflJSF3S67Lw7xcTXsN6Pu98XZAp9fU69Q5OZ99IvIsnx2S99tvv6FPnz745JNPcPHFF7u0DYfkEZG7rPVWFO4qRN7WvA5pmbPGZSFjRIbsuka+zrLPgvS16TjR2PWNKwECTMEmrJu2DqnJqU7XcTfttbXeihXbVuC5r55Dlb2qzWNmoxkLJizAXWPu8tp743iNbI02AGgTwDgCPFOwCUXTi1QN6PScep3aUpLynYiUcTU28NmAad++fUhJScF3332Hc8891+k6J0+exMmTJ1t+P378OAYOHMiAiYjcFojzJkRRRJW9CnUNdQgPCYfZaMaG0g1IW52GZrHZpV4MAQIMggHFNxV3CJpcDSraB1xdbefQM7hnl4GaJ3gj2K60VSJ2Waz722tQC4o6cvezT0Tq8OuASRRFXH311aipqcFnn33W6XqLFy/GkiVLOixnwERE1L3O7nzHR8bjl7pf0NjUKGvIlwEGGIPbJl5wpL3uLpObAQYIgtAScLm7nTd5MtgWRREp+SkoqymTnfQhMToRezP3+v2NAG9T+zPs7MYG30Oirvl1wHTvvfeiuLgYn3/+OeLi4jpdjz1MRETucaX3xh2ts7DJznR3OuD64Z4fcM6L58jeLtCyF/p7ljxf5u5n39lnmEP6iNznd1nyHDIzM/Hf//4XH3/8cZfBEgCEhoaiV69ebX6IiKhr3RU7VcqRha2gpAC2RptLF4yAVCvI1mhDtiXbre0KdxUqabbP8XamPuqcu5/99p9hyz4L4pbHIduSjbKasjaPldWUIduSjbjlcbouSEzkC3wmYBJFEbNnz0ZRURE2bdqEhAT3J7MSUWBiFqruySl26g5HFrYqW5Vbaa9FiHjvp/fcOravpMtWi7cz9ZFzaqV87+7GhmOZvdGOtNVpDJqIFPCZgOnee+/FG2+8gdWrVyMiIgJHjhzBkSNHYLfbvd00ItI5R+rrlPwUxC6LRUJuAmKXxSIlP0VWyutAIPfOt7sOHD/gVtprADjVfAqmYBEjzgDGDgBGnAH0DO56m0BNl63n1OuBSo2U73JubDSjGaIoIn1tOr/riNzUw9sNcNWKFSsAAH/84x/bLF+5ciVuueUWzzeIiHxC+7k4rTmGrDy86WFmoYKyO99ytb9wd8WQ3sBdY4CpKUBiNGBotYtmESirAdbvBV7aDuypdL6P2obagMv+lpqcioNzDzrN1JcYnRiwafG9pa6hTtH2tQ21ePd/78LWaHM56Go9pI/z04jk88mkD+5iHSaiwOKLmdS8SWkqalc4srB9detX6PP3Pi5tEx8FvHwlMCkJaGwCgoM6X9fx+IZS4M73gQpr28cDPV12IKbF1xulf2e/zf8Nf/jHH5gBkUgFfpv0gYjIFb4yZEVP86qU3vl2Vda4LPQ29UZSdFK3PU23jgJ23wNMjJd+7ypYav34xHjgh3uk7QHpYjEpOgkxxhhFbfd1giDAbDIjPioeZhPTTnuD2Wh26bPfnuMz7Biap2RIHxHJw4CJiPySWlmotKLHeVXhIeGa7r91FjZBEJA5NrPL9R+6CHjtKiCsR/eBUnvBQYCxh7T9QxdJy7LGZTFAIK9z5bPfmaxxWTjReELR8WsbahVtTxSIGDARkd9RKwuVVvSaCtjdO9+ucCQXaJ2Frau017eOAp689PS2bjbHsd2TlwJ3jQlmumzSDSUp35Xe2IgIiVC0PVEgYsBERH5HjSxUWtFzKmAld7673C8EmIJNHbKwdZb2Oj4KyJ8CqBW3iqK0v6iwGnV2SKSQkpTvSof0BfqwVCJ3MGAiIr+jRhYqLfjCvCq5d74FCAgxhODMXmc6fTwhKgE5k3NwaO4hpymrnaW9fvlKoIfB/Z6lDm0UgCBDM4A71dkhkQrcTfmudEgfh6USyccseUTkd5RmodIqk1rullxkW7JlZ7bKmZzj0VTAcrMLrp+xHlckXoFqezWOnzyOU82n0MPQA71Ce7mchc1ab0XhrkKs3/t3fHjzz2o+nXZ2Axii4f6J5HF89tunfE+KTuo05bu13oq45XGwN9pdmqdpEAww9jDi4NyDLExM1IqrsQEDJiLyCaIoospehbqGOoSHhMNs7DzDlyiKSMlP0VXaXT22qSvt61e1brPjTrgp2ISi6UWqFjsVxUwAKyAITart83c9ANwNIE+DfRMpIzfluzs3NliYmKgtphUnIr/gTjY5PQ5Z0fO8KmccxU5zJucgMTqxzWOJ0YldDrNTQhA+0ChYAoBTAD7QaN9EyshN+e7ukD4iko89TESkW672cqybtq5DwVm9DVmpsFYgITfB7e3L7ytHfFS8eg2SwXPFTmsBRAIyg0p5BADHAWibQp3IU9wZ0kdEEg7Jc4IBE5HvkDvcpPim4g5Bk56GrOh1XpW+lAAY5YHjfANgpAeOQ+Q5nruxQeQ/OCSPiHyWWtnk9DRkhamAXXHSz45D5Dlyh/QRkesYMBGR7hSUFMDWaHNpKB0gBU22RhsKdxV2eMxbc3Ha0+O8Kv0J9bPjEBGRP+CQPCLSFS2zyXl7yIre5lXpTx2AXuAcJiIi8gQOySMin6RlNjlvD1mJCovCumnrIAhCt4VhDTBAgICi6UUBEiwBUhCT2O1ayiSBwRIREcnBgImIdKWuoU7R9rUNtSq1RBt6mlelT1Mh1UvSQg8AUzTaNxER+SsGTESkK+Ehyu7+R4REqNQS7ehlXpU+3QWpXpIWTkEqXEtEROQ6zmEiIl3Rcg6THnl7XpU+TQLwMdQNnHoAmAhgg4r7JCIiX8Y5TETkkwItm5y351Xp08tQf1hej9P7JSIikselM9LcuXNd3uHy5cvdbgwRBQZRFFFlr0JdQx3CQ8JhNrYNFDJGZuDhTQ/LziY3c8RMLZtNHpMAIB/A7Sru84XT+yUiIpLHpYDpm2++afP7jh070NTUhLPOOgsA8NNPPyEoKAijR49Wv4VE5Des9VYUlBQg/+t8lNaUtixPik5C5thMZIzMQFRYVEs2ubTVaTCIhi6DpsDMJhcIbgPwK4BHVNjXkwBuVWE/REQUiGTPYVq+fDk2b96MgoICREdHAwBqamowa9YsXHTRRZg3b54mDVUD5zAReY9lnwXpa9Nha7QBQJv5SY5McaZgE9ZNW4fU5FRZ2xRNLwrQBAmB4DUAmZDmM8mZ09Tj9M8LYLBERETOuBobyA6YBgwYgA0bNuCcc85ps/z777/HpEmT8Msvv7jXYg9gwETkHZZ9FqStToMoit33FgkCim8qbgmarPVWFO4qRN7WvA69UlnjspAxIgORYZGaPwfypnIAdwL4CFIQ1FXg5Hj8CkhzljgMj4iInNMsYIqIiMC7776LSy+9tM3yTZs24eqrr0ZtrX5roDBgIvI8a70VccvjXJ+PBAOMwUYcnHuwzRA7ZpMjYDeAlwB8AKAUaJNFUYBUlHYKpNThQzzeOiIi8i2uxgay0xBde+21mDVrFp577jn84Q9/AABs2bIFCxYswHXXXed+i4nILxWUFMDWaHM5RXgzmmFrtKFwVyGyxmW1LHdkkzObzFo1lXRvKIC80/9fB2AfgJMAQgEkA1BWw4uIiMgZ2T1MNpsN8+fPxz//+U80NjYCAHr06IFbb70Vy5YtQ8+ePTVpqBrYw0TkWYFWU4mIiIh8hyZD8pqamvD5559j2LBhCA0NRWlpKURRRHJysq4DJQcGTESeVWmrROyyWPe3X1DJHiUijXSX3t8fBeJzJqLOaTIkLygoCKmpqdizZw8SEhIwfPhwxQ0lIv9V11CnaPvahloGTEQqczW9vyt8JQBR8zkTUeCRPSTv/PPPx9NPP43LLrtMqzZphj1MRJ7FHiYifXEnvb9D6+CoqbkJ7/34Hl7Y9oLuAxAlz5mI/JtmWfI2bNiA+++/H48//jhGjx7dYSiengMRBkxEnsU5TET64W56/856Z5zRWwCipKSBLxJFoKoKqKsDwsMBsxngVyhR5zQLmAwGw+8bt/orFEURgiCgqanJjeZ6BgMmIs/L3ZKLbEu27IApZ3JOmyx5RCSfo1fol9pfMP618bCfsrv0t+hI719wTQEy3slw2jvT3fZaByDdDQdUq6SBL7BagYICID8fKG0V0yYlAZmZQEYGEBXlrdYR6ZdmAdMnn3zS5eOXXHKJnN15FAMmIs+TfdEiGGDs4ZsXLUR6IadXqCvC6f9c+dttT6sAxNX5SHq9WaP2vC+LBUhPB2w2x/5/f8yxW5MJWLcOSPXdzjMiTWgWMPkyBkxE3iF3WMz6GesxKWmSB1so8ZUJ7ERd6WrOjqepHYC4Oh/prT+/hdkfzNbVcGAtEk9YLEBamhQkNXcR0xoMUvBUXMygiag1zQMmm82GAwcOoKGhoc1yPWfOY8BE5D2uXugUTS/SNFhyFhQdO3mMGbTIL7h6c8JT1AxA5N54aRLdnyKgdsIZLRJPWK1AXBxgt3cdLDkYDIDRCBw8yOF5RA6aBUy//fYbZs2ahQ8++MDp45zDRESdsdZbUbirEHlb8zoEJlnjspAxIgORYZGqHKt9YBQkBKFwV2GHoKhfeD9U2avQ2CQV4mYGLfJVcoe/epLSAETucxMgKOpZK7+vHPFR8W5v35pWiSdyc4Hs7LZD8LojCEBODpDF6aFEADSqwwQAc+bMQU1NDbZs2YKJEyfi7bffxq+//oonnngCzz33nKJGE5F/iwqLQta4LGSOzUS1vRq1DbWICIlAjDFGteEvnQ176ewC6nDd4U735Vjf3mhH2uo0n8+gRf6toKQAtkabV4fgdUZpTTW5z03paxAREqFoewdrvRXpa9Nd6vFrRjMMogHpa9O7nfclilKCB3fk5UmJIDjamMh1sgOmTZs24d1338X5558Pg8GAQYMG4YorrkCvXr2wdOlSpKWladFOIvIjgiDAbDKrXmOp/bCX1pRcQMm5kCHyBlEUkf+1m1fQHqAkAPHkc3MMIYwxxqiyP7mBXjOaYWu0oXBXYZfzvqqq2mbDc5UoSttVV0spx4nINYbuV2nrxIkT6NOnDwAgJiYGv/32GwBg2LBh2Llzp7qtIyJykWPYi71RSpus9l321hcyRHpTZa9CaU2p7nqXBAhIik5SFIB4+rlljctSpcdbSaCXtzUPXc2YqKtzt1WS2lpl2xMFGtkB01lnnYUff/wRADBy5Ei8/PLLOHToEF566SX069dP9QYSEXVHzrAXpbq7kCHyhroGhVfQGlIagCh9bo65iN0xCAaYgk2YOWKmouM5uBvoiRBRWlOKant1p+uEhytrW4Q6Iw6JAoZbc5gOH5bG/D/22GNITU3Fv/71L4SEhGDVqlVqt4+IqFuemrvR+kJG7eGEREqEhyi8gm7FAEPL35KSvylHTTWlAYjS5+ZKLSkDDBAgoGh6kWpDbpUGel3N+zKbpaK0ZWXykz4kJgIx6ow4JAoYsnuYZsyYgVtuuQUAMGrUKFRUVGDbtm34+eefMX36dLXbR0TUJW/M3aht4HgW0hez0Yyk6CSXe1OccQQWxmAj3pr2FkzBJhjkXyYAUDcAcfe5OYYDFt9UDGOwseX5tV/H8Zzdrf8miiIqbZWosFag0lbZ0gOtNNDrat6XIEiJG9yRlcWED0RyufdN2IrJZMJ5552H3r17q9EeIiJZvDF3Q60MWuQ9nV3k+ipBEJA51s0r6NMSoxORMzkHh+YewnVDrsO6aesgCIKsoEmNAKTDPhU8t6xxWZicMhkH5x5EzuQcJEYntnm89XOW21ZrvRW5W3KRkp+C2GWxSMhNQOyyWKTkpyB3Sy6ChCBFgV53874yMgCTSaqv5AqDQVp/pjojDokCikt1mObOnevyDpcvX66oQVpiHSbyd86KsqpdrV5vKqwVSMhN8Mix1CzCSd5hrbdiVckq5G7NRYW1omW5PxQplluryCAYENYjDF/d+hUGRAxwmt6/q4KrzmhRUw1w77kZexg7ZLUURVGVkgauFqK9efjNeGXHK7Ju6AgQkDM5p8sseS3tsABpadKwvK6K1xoMUq/S+vXAJO3qghP5HFUL106cOLHN7zt27EBTUxPOOussAMBPP/2EoKAgjB49Gps2bVLYdO0wYCJ/1VntIX+4COxOpa0SsctiPXIsORcypD/rdq/DTUU3oaGpwenjAgSfL1Ist0iqK71AXRWczhybiavOugqCIKheU609LZ6bJ9rRw9ADjU2NigK9LttjAdLTAdvpagqtr+ocb4XJBBQVMVgiak/VgKm15cuXY/PmzSgoKEB0dDQAoKamBrNmzcJFF12EefPmKWu5hhgwkT9y9U6nL18EdkUURaTkp6CspkzTYXnuXMiQfjz56ZN45ONHul1PgACDYPDpIsWuficUTS+SFVCo1TujhFbPzVWye7pgQEiPEDSckoJ0rQI9qxUoLJSK0rauz5SUJM1ZysgAItXr8CPyG5oFTAMGDMCGDRtwzjnntFn+/fffY9KkSfjll1/ca7EHMGAifyP3TqcvXwR2JXdLLrIt2ZoFTFrfsSZtrdu9Dtf/53qX13f0NPlycNxVr5AWQ+Y8yZvPzZ3vGgEC7hx9J17/9nXNAz1RlIrS1tZKqcNjYpjggagrmgVMERERePfdd3HppZe2Wb5p0yZcffXVqNVxNTQGTORP3LnTaQz2zx4Sua+Fqzxxx5q0Za234oxlZ6Ch2fkwvM74y/BLPfQKacXTz83d3mzH3Mdtt2/D69++7pdBLJGvcjU2kF2H6dprr8WsWbPw3HPP4Q9/+AMAYMuWLViwYAGuu+4691tMRLLIrT3UjGbYGm0o3FXo8xeB7UWFRWHdtHVIW50Gg2iQFTQJECBCRIghBGaTGYfrDrc8lhidyAsZH7fqm1WygyVA6gHI25qHzLGZPh1gCIIAs8nsl3XDPP3cHBk55XLUb2sWm5E1LguZYzP9Nogl8leye5hsNhvmz5+Pf/7zn2hsbAQA9OjRA7feeiuWLVuGnj17atJQNbCHifyF0jud/prlzTG/4UTjCZe3aX13t1doL17I+BFRFJGYm4iKYxVu76NyQaVfBhskn9KMnOX3lSM+Kl69BhGRYpr1MJlMJrz44otYtmwZSktLIYoikpOTdR0oEfkbpXc6q+3VfnkRmJqcioJrCvDn//y520DSMbn/hSkvYHLK5Jbl/no33t+4kkK/yl6lKFgCpCLF/DwQoG0hWiLSN9kBk0PPnj0xfPhwNdtCRC6qa6hTtL0vXQTKqS1lrbci452MlmF2Xe4XIkRRxPX/ud4v53X5Kzkp9JX+nQC8yKXfmY1mJEUnud2z310hWiLSL9fLd5924sQJPProo5gwYQKSk5ORmJjY5oeItBcIdzqt9VbkbslFSn4KYpfFIiE3AbHLYpGSn4LcLbmw1ls7bOOY1+XqHKbW87pI/yz7LIhbHodsSzbKasraPFZWU4ZsSzbilsfBss8CQPnfSXxUPC9yqYUgCMgcm+nWtlnjsji8l8iHyZ7DdOONN+KTTz7BX/7yF/Tr16/DF8B9992nagPVxDlM5C/8fQ6TO7Wl/P01CXTupNCflDQJKfkpbg1fBYCc1Bzc9wf9ntPI82RnJ2X9NiJd0yyteFRUFIqLi3HBBRcobqSnMWAif+JuPRC9p0p2t7ZUpa0Sscti3T4uJ/frl5IU+gUlBZhjmSP7mCFBIfh1/q+8yKUO5H5HsX4bkX65GhvIHpIXHR2NmBgOUSDytoyRGTAFm2Bw8c/YIBhgCjZh5oiZGrfMfdZ6K9LXpnd7IQJIw+lEUUT62nRY662qzOsifVIy1DJjZAZ6Bvds6Zl01ZvpbzJYIqdSk1NRfFMxjMFGCKf/a82xzBhsZLBE5CdkB0yPP/44Fi1aBJvNpkV7iMhFjtpDgiB0GzQZYIAAAUXTi3R9EajkwjgQ5nUFIlEUkf91vlvb5m3NQ2RoJNZNWweDYHA5aHrq0qdw3RDWFaTOpSan4uDcg8iZnIPE6LbztxOjE5EzOQeH5h5isETkJ2QPyRs1alRLOvH4+HgEBwe3eXznzp2qNlBNHJJH/sjV+T5F04t0ffJWOgfpp9k/YfALgzmHyc+oNdTSlRpdIYYQrLl+Da4dcq3bx6PAI4oi67cR+SjN6jBdc801StpFRCpz3Oks3FWIvK15bSa4J0YnthRljQyL9GIru6e0tlRNfQ0yx2Yi25Itex+BmsFKTsp2b1ErhX5XfyfxkfGY84c5uGXkLbr/OyH9EQSB9duI/JzsHiZfxh4m8ne+fKezwlqBhNwEt7cvv68cUWFRzGDlAjm1jLxNi2Qevvx3QkRE6tEs6QMR6ZfjTmd8VDzMJv31FnRFjTlI/jivS21yaxl5m6NYqNykDQIEJEUnOa2j5I2/E1EUUWmrRIW1ApW2SgTQvUoiIp8nO2BqamrC3//+d4wdOxZ9+/ZFTExMmx8iIneodWHMDFadc6RDtjfaIZ7+rzXHMnujHWmr03QRNPl6sVB3CjATEZG+yA6YlixZguXLl2PatGk4duwY5s6di+uuuw4GgwGLFy/WoIlEFAjUvDBmBquOlKRs9zZfTaHva715RETknOw5TElJScjLy0NaWhoiIiJQUlLSsmzLli1YvXq1Vm1VjHOYiPRNdoFSF+Ygcb6KxNcLHftasVB3CzATEZHnaDaH6ciRIxg2bBgAIDw8HMeOHQMAXHnllSguLnazuURE2tSW8uV5XWpRWstID/NtfGmopS/35hERUUeyA6a4uDgcPnwYAJCcnIwNGzYAALZt24bQ0FB1W0dEAceXLox9hSNlu5zeJeD3lO3V9mqNWiaPrwy1VFKAmYiI9Ef2kLwHHngAvXr1wkMPPYS33noLN954I+Lj43HgwAFkZ2fj6aef1qqtinFIHpHvsNZbndbMSYpO8pnaUnqhRsr2+Kh49RqkAr0OtVRagJkFlL1HFIGqKqCuDggPB8xmgG8FkX9zNTZQXIdp69at+OKLL5CcnIyrrrpKya669emnn2LZsmXYsWMHDh8+jLfffltWIV0GTES+R68Xxr5Ei1pG5Bxfa99jtQIFBUB+PlDaqnZ2UhKQmQlkZABRUd5qHRFpSbM5TJ9++ilOnTrV8vu4ceMwd+5cTJ06FZ9++ql7rXXRiRMnMGLECLzwwguaHoeI9INzkJTTopYROVfXUKdo+9qGWpVaQq6wWIC4OCA7Gyhrm8gQZWXS8rg4aT0iClyyA6aJEyeiurrjePZjx45h4sSJqjSqM1OmTMETTzyB6667zqX1T548iePHj7f5ISIKNL5ey8iXqFGAmTzDYgHS0gC7XRqO1368jWOZ3S6tx6CJKHDJDphEUXR68qyqqkLPnj1VaZRali5disjIyJafgQMHertJRERe4au1jHwNe/N8g9UKpKdLAVFzN7k5mpul9dLTpe2IKPD0cHVFR6+OIAi45ZZb2mTEa2pqwrfffosJEyao30IFHnzwQcydO7fl9+PHjzNoIgpQoiiiyl6FuoY6hIeEw2wMrOF9jpTtaavTYBAN3dcGciFlO3Xk6M3LtmTL3pa9eZ5TUADYbB17lTrT3CytX1gIZHm/LBkReZjLPUyOXhpRFBEREdGm56Zv376444478MYbb2jZVtlCQ0PRq1evNj9EFFis9VbkbslFSn4KYpfFIiE3AbHLYpGSn4LcLbkBVfuGKds9g715+iaKUoIHd+TluR5kEZH/kJ0lb8mSJZg/f77Xh98JgsAseUTUJcs+C9LXpsPWaAOANmmeHcGCKdiEddPWITU51Stt9AambNeeZZ8FaavTui1ea4ABgiAwQPWgykog1v1EhqislFKOE5Hv0yytuN1uhyiKMJlMAID9+/fj7bffxtChQzFpkue+7BkwEVFX5F6wFt9UHFBBE8CU7VpzNWAvml7EYMmDKiqABPfLkqG8HIiPV6s1RORNmqUVv/rqq1FYKFUjt1qtGDt2LJ577jlcffXVWLFihfstdkFdXR1KSkpQUlICACgvL0dJSQkOHDig6XGJyHNEUUSlrRIV1gpU2irhTqk4a70V6WvTuw2WAKAZzRBFEelr0wNqeB7AlO1aS01OxcG5B5EzOQeJ0YltHkuMTkTO5BwcmnuIwZKHhStLZIgIJjIkCjiye5h69+6NTz75BOeccw5ee+015Ofn45tvvsG6deuwaNEi7NmzR6u2YvPmzU5Tl2dkZGDVqlXdbs8eJiL9stZbUVBSgPyv8zsME8scm4mMkRkuJyDI3ZKLbEt2mzv63REgIGdyDrLGcUY3qY+9efohikBKilRnSc4VkCAAiYnA3r3S/xOR79Osh8lmsyHi9O2VDRs24LrrroPBYMAf/vAH7N+/3/0Wu+CPf/wjRFHs8ONKsERE+mXZZ0Hc8jhkW7JRVtO2emRZTRmyLdmIWx4Hy77uC6GIooj8r92b0Z23Nc+tHi2i7rA3Tz8EAch0rywZsrIYLBEFItkBU3JyMt555x38/PPPsFgsLfOWjh49yl4bIpLNMdfI3miHePq/1hzL7I12pK1O6zZoqrJXobSmVFbvkuM4pTWlqLZ3LMxNRP4lIwMwmQCDi1dBBoO0/kwmMiQKSLIDpkWLFmH+/PmIj4/H2LFjMX78eABSb9OoUaNUbyAR+S8t5hrVNdQpalNtQ62i7YlI/6KigHXrpN6i7oImg0Far6hI2o6IAo/sgOn666/HgQMHsH37dlgsv9/pveyyy/D888+r2jgi8m8FJQWwNdq6DZYcmtEMW6MNhbsKO10nPETZjO6IEHkzutVIUkGkJ976TKt5XFGU0n9XVEj/OttVaipQXAwYjVJA1H6onWOZ0QisXw94MBEwEemM7KQPrb355pu46qqrvF6TyVVM+kCkH6IoIiU/BWU1ZbKTMyRGJ2Jv5l6n80C02m97aiapINIDb32m1Tyu1QoUFEiFaUt/3xWSkqR5SxkZHXuJrFagsFAqStt+m6wsaZtIliUj8kua1WFqrVevXigpKUFiYmL3K+sAAyYi/ai0VSJ2mfvVIysXVMJscl49UusseSyIS/7GW59pNY9rsQDp6YBN2lWbXiXHPRCTSRqKl+pkV6IIVFcDtbVS6vCYGCZ4IPJ3mmXJa41DT4jIXVrONcoYmQFTsAkGF7/iDIIBpmATZo7ofka32kkqiLzNW59pNY9rsQBpaYDdLgU+7S9PHMvsdmk9i5NdCQJgNktFac1mBktE9DtFARMRkbu0nGsUFRaFddPWQRCEboMmAwwQIKBoelG3w35YEJf8jbc+02oe12qVepZEEWjuZjpkc7O0Xnq6tB0RkSsUBUwffPAB+vfvr1ZbiCiAmI1mJEUntQy7cZUAAUnRSYgxxnS5XmpyKopvKoYx2Ajh9H/t9yNAgDHYiPUz1mNSUvczurVIUkHkTd76TKt53IICaRhed8FSy76apfUL+WdJRC5SFDBdeOGFCAsLU6stRBRABEFA5lj3qkdmjctyKTFDanIqDs49iJzJOUiMbjvXMjE6ETmTc3Bo7iGXgiUWxCV/463PtJrHFUUpwYNb+8pznj2PiKg9WUkffvzxR7z55pv47LPPUFFRAZvNhtjYWIwaNQqpqalIT09HaGiolu1VhEkfiPTFWm9F3PI42BvtLt1pNggGGHsYcXDuQdnZukRRRLW9GrUNtYgIiUCMMcaloMtByyQVRN7grc+0msetrARi3d8VKiul+UpEFJhUTfrwzTff4IorrsCIESPw6aef4vzzz8ecOXPw+OOP4+abb4Yoinj44YfRv39/PPPMMzh58qRqT4SI/JdWc42cEQQBZpMZ8VHxMJvMsoIlQHmSiuMnj7NeE+mKt4o8q3ncOmW7Qi3rVBORC3q4stI111yDBQsW4N///jdiYjqfN/DVV1/h+eefx3PPPYeHHnpItUYSkf9yzDXqLrWwMdiIoulFLg2f04LSJBWXFl6KCmtFy++s10Te5ukiz1ocN1zZrhDh3lMgogDj0pC8hoYGhISEuLxTuet7CofkEemXtd6Kwl2FyNua16F4Zda4LGSMyEBkmPeqR7pbENdBgMB6TaQrniryrOVxRRFISQHKyuTNRxIEIDER2LuX6cOJApmqQ/LkBj96DJaISN+iwqKQNS4LezP3onJBJcrvK0flgkrszdyLrHFZXg2WAGVJKgAEVL0mURQ5/NAHeCLxitbHFQQg080/y6wsBktE5BpZSR9OnDiB1atX48svv8SRI0cgCALOOOMMXHDBBbjxxhvRs2dPLduqGHuYiEgJuUkqXGWAAcZg95JZ6Im13oqCkgLkf53foZeQww/1yZOJV7Q6rtUKxMVJRWldSS1uMABGI3DwIBAV1e3qROTHVO1hAoDdu3dj8ODBWLhwIWpqanDmmWciLi4ONTU1WLBgAc466yzs3r1blcYTEemRnCQVcvhDvSbLPgvilsch25KNspqyNo+V1ZQh25KNuOVxftWT5g88mXhFq+NGRQHr1km9RYZu/iwNBmm9oiIGS0TkOpd7mCZOnIi+ffuioKCgw5C7hoYG3HLLLTh8+DA+/vhjTRqqBvYwEZEaLPssnSapcJfSeSHeZNlnQdrqNIii2GVvgQEGCIKA4puKOWdLZ7r6TLeeb6d24hU1j2uxAOnpUlFaoO2cJseflMkkBUuTvJM7hoh0xtXYwOWAyWQyYfv27Rg6dKjTx7///nuMHTsWNsc3lQ4xYCIitXSWpCI+Mh4Vxyrc3q+v1WuSPbTKT4Yf+iNvJV5R87hWK1BYKBWlLf19V0hKkuYsZWQAkd6dDklEOqJ6wDRgwAC8+OKLuPrqq50+/s477+Dee+/FoUOH3GuxBzBgIiK1tS+Ie/zkcSTmJbq9v/L7yhEfFa9eAzWWuyUX2ZZs2dnOcibnIGtcloYtI3cpLfKsh+OKIlBdLdVZiogAYmKY4IGIOnI1NnCpDhMA3H777cjIyMAjjzyCK664AmeccQYEQcCRI0fw0Ucf4amnnsKcOXPUaDsRkc9wFMR19AopHZ7nbm0bbxBFEflf57u1bd7WPGSOzfS54YeBoP1n2hePKwiA2Sz9EBEp5XLAtHjxYhiNRixfvhwLFy5sVQNBRN++ffHAAw9g4cKFmjWUiMgXmI1mJEUnuV1jJsbYeXFwvamyV7UZQuUqESJKa0pRba/2qeGHREQUmFwOmADg/vvvx/3334/y8nIcOXIEANC3b18kJCRo0jgiIl/jqDGTbcmWva2S2jbeUNdQp2j72oZaBkykC6IIVFUBdXVAeLjUM+VDf4pEpDG38uImJCRg/PjxGD9+PIMlIqJ2MkZmwBRscjn1uEEwwBRswswRMzVumbrCQ8IVbe9Lww/JP1mtQG4ukJICxMYCCQnSvykp0nKr1dstJCI9kBUwHTx4EA8//DAmTpyIIUOGYOjQoZg4cSIefvhh/Pzzz1q1kYjIp3irto2nOYYfOtI/u0qAgKToJJ8afkj+x2KRCt5mZwNlbUuHoaxMWh4XJ61HRIHN5YDp888/x5AhQ/D2229jxIgRmDlzJm6++WaMGDEC77zzDs455xx88cUXWraViMhnpCanovimYhiDjRBO/9eaY5kx2Ij1M9arWtvGUxzDD93ha8MPyb9YLEBaGmC3S8Px2ucLdiyz26X1GDQRBTaX04qff/75uPDCC/H88887fTw7Oxuff/45tm3bpmoD1cS04hSwOEDfa7xV28ZTZNdhEgww9mAdJvIeq1XqObLbgebuP7IwGACjETh4EIiK0rp1RORJqtdhMhqNKCkpwVlnneX08f/9738YNWoU7Ha7ey32AAZMFHCsVqCgAMjP71jFMTNTquLIKwCP8FZtG0+w7LMgbXUaRFHsMmgywABBEHy2R438Q26uNNzOtasfiSAAOTlS8Vsi8h+uxgYuD8nr168fvvzyy04f/+qrr9CvXz95rSQi7XCAvq44aszER8XDbDL7TbAEBMbwQ/IPoijdP3JHXp68IIuI/IfLacXnz5+Pu+66Czt27HBauPa1115DTk6Ohk0lIpc5Bug7G5wP/L7MMUC/uBhITfVsG8mvpCan4uDcg06HHyZGJ/rF8EPyfVVVbTvbXSWK0nbV1SyGSxSIXB6SBwD//ve/8fzzz2PHjh1oamoCAAQFBWH06NGYO3cupk2bpllD1cAheRQQOECfvMyfhx+Sb6uokFKHu6u8HIiPV6s1RORtrsYGsgrXTp8+HdOnT0djYyMqKysBAL1790ZwcLCy1hKRegoKAJvN9bEjzc3S+oWFHKBPqnAMP2RRWtKbcGWlwxDB0mFEAcmtwrXBwcHo168f+vXrx2CJSE84QJ+IqFNms5TzRm6HpyBI28WwdBhRQHIrYHKmtLQUl156qVq7IyJ3OAboyw18Wg/QJ3KBKIqotFWiwlqBSlslZIzuJvIaQZAShLojK4vVGIgClWoBU11dHT755BO1dkdE7qirU7Z9ba067SC/Za23IndLLlLyUxC7LBYJuQmIXRaLlPwU5G7JhbXe6u0mEnUpIwMwmaTpm64wGKT1Z87Utl1EpF8uz2HKy8vr8vFDhw4pbgwRKcQB+qQhyz4L0temw9Zo6/BYWU0Zsi3ZeHjTw1g3bR1Sk5l1kfQpKgpYt05KEGowdJ0bx2CQepWKipgThyiQuZwlz2AwoF+/fggJCXH6eENDA44cOdKSPU+PmCWP/J4oAikpUp0luVUZExOBvXs55oSckluctvimYgZNpGsWC5CeLuW8Adp+ZTq+Bk0mKViapNPSYaIojcSuq5Pul5nN/AonkkP1wrWDBg3C888/j/Lycqc/xcXFqjSciBTgAH3SgLXeivS16d0GSwDQjGaIooj0tekcnke6lpoqVVPIyZHuF7WWmCgtP3To92BJFIHKSik1eWWld3PkWK1Abq50fyw2VkqVHhsr/Z6bKz1OROpxOWAaPXo0duzY0enjgiBw0i+RHnCAPqmsoKQAtkZbt8GSQzOaYWu0oXBXocYtI1ImKkq6V7R3rxQElZdL/+7dKy2PjNRfcGKxSKX2srOlwQStlZVJy+PipPWISB0uD8nbvXs3bDYbxowZ4/TxxsZG/PLLLxg0aJCqDVQTh+RRwLBYpAH6oujaAP316/U75oS8ShRFpOSnoKymDCJcvykmQEBidCL2Zu5l0VryWa4O21u3Tuqx8kR75Hy1Fxd7pl1EvsrV2MDlgMkfMGCigOIPA/TJ6yptlYhdFuv+9gsqWcCWfJLeghOrVeo5stu7bk/rdhmN0rBDJqwgck71OUzOPP3007ByoCyRPskdoE/kRF2DslT1tQ1MVU++x2qV7jd1FywB0uOiKK2v5SVRQYF0/8uVYMnRLpsNKOTIWCLFFAVMTz31FKpZ6JL0Rk8zc73NlQH6RF0ID1GWqj4ihKnqyffoLTgRRSA/371t8/IC+zRIpAZFAVMAjeYjX6C3mbl6IghSvtn4eOadJVnMRjOSopMgQN5nRoCApOgkxBhjNGoZkTb0GJxUVQGlpfL3LYrSdry3TaSMooCJSDeYNohIE4IgIHOse6nqs8ZlMeED+Rw9Bid1ykbGopYjY4kUURQw7d69W9dZ8ShAOGbm2u3SGav9Wc6xzG6X1mPQRAFEFEVU2ipRYa1Apa3SrZEBGSMzYAo2weDiKcMgGGAKNmHmCKaqJ9+jx+AkXNnIWERwZCyRIooCpoEDByIoKEitthDJp8eZuUQ6YK23IndLLlLyUxC7LBYJuQmIXRaLlPwU5G7JlVVUNiosCuumrYMgCN0GTQYYIEBA0fQiRIVFKXsSRF6gx+DEbAaSkuSPphYEabsYjowlUkS1IXm7du1i8ESep7eZuUQ6YNlnQdzyOGRbslFW03aIallNGbIt2YhbHgfLPtd7W1OTU1F8UzGMwUYIp/9rzbHMGGzE+hnrMSmJ2RfJN+kxOBEEINO9kbHIyuK0VSKlVJ3DxCQQ5FF6nJlL5GWWfRakrU6DvdEO8fR/rTmW2RvtSFudJjtoOjj3IHIm5yAxum2q+sToRORMzsGhuYcYLJFP02twkpEhlc4zuHjlZjBI68/kyFgixVwuXHvdddd1+fixY8ewefNmNDU1qdIwLbBwrZ+prJSy4CnZ3syCmuQ/rPVWxC2Pg73RjmZ03+tqgAHGYCMOzj0oe/icKIqotlejtqEWESERiDHGMMED+Q29FomVW0x3/XqW2iPqiuqFa9977z3U19cjMjLS6U+40kG/RHLpcWYukRcVlBTA1mhzKVgCgGY0w9ZoQ+Eu+UNUBUGA2WRGfFQ8zCYzgyXyK1FRwLp1UtDRXY+OIzgpKtI2WAKkeuTFxVJwJggde7Mcy4xGBktEanK5h2n48OG47777cOuttzp9vKSkBKNHj2YPE3kOe5iIWoiiiJT8FJTVlHUYhtcVAQISoxOxN3Mvgx6idiwWKU+QzSb93vqKyfHnYjJJwZIngxOrVZqKm5cnpTJ3SEqShgVmZLAuOZErVO9hGj16NHbu3Nnp46GhoTjzzDPltZJICT3OzCXykip7FUprSmUFS4A0p6m0phTVdla2JGovNVUaZpeTAyS2nbaHxERp+aFDnu/JiYqSAqO9e6V7f+Xl0r9790rLGSwRqcvlHqaTJ0+iqakJJpNJ6zZphj1Mfig3VypKKyeBgyBIZ7msLM2aReRpFdYKJOQmuL19+X3liI+KV69BRH5GFKWitLW1UurwmBhmnyPydar3MIWGhvp0sER+immDiAAA4SHK5pFGhLCyJXmeKEo9IxUV0r96Tl4qCNLAhvh46d9AC5Z86b0iUptLV5knTpyQtVO56xO5Ta8zc7XCMxZ1wmw0Iyk6qUN9pO4IEJAUnYQYI4eokudYrdIAgZQUaSpqQoL0b0qKtJy1xfWD7xWRiwFTcnIynnrqKfzyyy+driOKIj766CNMmTIFeXl5qjWQqFuBkDaIZyzqhiAIyBzrXvGYrHFZTPhAHmOxSCm7s7OBsrZ1lVFWJi2Pi5PWC2R6uD/G94pI4tIcph9//BGPPPII/vvf/2LkyJEYM2YM+vfvj7CwMNTU1GD37t346quvEBwcjAcffBB33HEHgoKCPNF+WTiHyc/5a9ogV9M0rVsnBY8UsGTXYRIMMPZwrw4TkTvk1hEqLg68rzWrFSgokOqytz+VZWZKpzJPDJLge0WBwNXYwOWkDwBw8OBB/Oc//8Gnn36KiooK2O129O7dG6NGjUJqaiqmTp0Kg6tzSbyAAVOA8KeZuTxjkUyWfRakrU6DKIpdBk0GGCAIAtbPWI9JST7Y60o+R6/FYPVEL/fH+F5RoNAkYPJ1DJjIp/CMRW6y7LMgfW06bI3SVVfrVOOOOU6mYBOKphcxWCKPYVLTrunp/hjfKwoUqmfJIyIPKyiQbjO6EiwB0no2mzQskQJaanIqDs49iJzJOUiMbls8JjE6ETmTc3Bo7iEGS+QxoigNMXNHXp7/57exWqWepe6CJUB6XBSl9bWYvsr3iqgj9jAR6ZEoSgkdysrk3+JLTJSqF/rqMERSlSiKqLZXo7ahFhEhEYgxxjDBA3lcZaWUp0bJ9mazeu3RGz316PC9okDCHiYiX1ZVJc32lXs/QxSl7aqrtWkX+RxBEGA2mREfFQ+zycxgibyirk7Z9rW16rRDj/TWo8P3iqgjBkxEesQzFhH5kXBldZUR4cd1lfV2f4zvFVFHDJiI9IhnLCLyI2azlBZbbgenIEjbxfhxXWW93R/je0XUkVsB02effYabb74Z48ePx6FDhwAAr7/+Oj7//HNVG+fMiy++iISEBISFhWH06NH47LPPND8mkcfxjEVEfkQQpBpC7sjK0m5Kph6Kw+rt/phe3ysib5IdMK1btw6pqakwGo345ptvcPLkSQBAbW0tnnrqKdUb2Nq///1vzJkzBw8//DC++eYbXHTRRZgyZQoOHDig6XGJPI5nLCLyMxkZUg0hV8s1GgzS+jNnqt8Wq1VKtJCSIiU4SEiQ/k1JkZZrkX2uM3q8P6an94pID2QHTE888QReeuklvPrqqwgODm5ZPmHCBOzcuVPVxrW3fPly3HrrrbjtttswZMgQ5OTkYODAgVixYoWmxyXyCp6xiMiPREVJBVcFofuvNUetoaIi9cvKWSxSibvsbCkRaWtlZdLyuDhpPU/Q4/0xvbxXRHohO2D68ccfcfHFF3dY3qtXL1g1vCXT0NCAHTt2YNKktnVDJk2ahC+//NLpNidPnsTx48fb/BD5DJ6xiMjPpKZKBVeNRukrq/3FvmOZ0QisXw9MUrlUmKM4rN0uDb9rPwTPscxul9bzVNCkx/tj3n6viPREdsDUr18/7Nu3r8Pyzz//HImJiU62UEdlZSWamppwxhlntFl+xhln4MiRI063Wbp0KSIjI1t+Bg4cqFn7iDTBMxYR+ZnUVODgQamGUPvLhsREafmhQ+p/nempOGx7er0/5q33ikhvZAdMd955J+677z5s3boVgiDgl19+wb/+9S/Mnz8f99xzjxZtbKN9DRFRFDutK/Lggw/i2LFjLT8///yz5u0jUh3PWETkg7pKqBAVJQ0n27tXeqy8XPp3715peWSk+u0pKABstu6DJYfmZmn9wkL12+KMXu+PeeO9ItKbHnI3WLhwIY4dO4aJEyeivr4eF198MUJDQzF//nzMnj1bizYCAHr37o2goKAOvUlHjx7t0OvkEBoaitDQUM3aROQxjjNWZqZUdKO2VkqNFBPDBA9EpCtWqxSc5OdLdYIckpKkr7CMjN97RgRBSnpgNmvbJqXFYTMzPfNV67g/VlgoHbf165eYKJ0GMjK8E6R46r0i0iNBFF1PotnU1ITPP/8cw4YNQ1hYGHbv3o3m5mYMHToU4UrzYrpg3LhxGD16NF588cWWZUOHDsXVV1+NpUuXdrv98ePHERkZiWPHjqFXr15aNpWIiCjgWCzSMDabTfq99RWGI+AwmaThZ6mpnmtXZaWUBU/J9p4OFESR98eItOZqbCCrhykoKAipqanYs2cPYmJiMGbMGMUNlWPu3Ln4y1/+gjFjxmD8+PF45ZVXcODAAdx1110ebYfPEkWppHhdnVT4wWzmty8REanCkVDBWTIF4PdljoQKxcWeC5rUKA7r6YCJPTpE+iF7SN6wYcNQVlaGhIQELdrTpenTp6Oqqgp/+9vfcPjwYZx77rlYv349Bg0a5PG2+BQ54yOIyDW8AUE64u2Po9yECgaDtP7Bg545/eitOKyv8vbnTEv+/NxIOdlJH5588knMnz8f77//Pg4fPuzxtN333HMPKioqcPLkSezYscNpinNqRW8FJ4h8nZ4qXlLA08vHUe8JFbxRHLarpBe+Ri+fMy3483Mj9ciawwQAhlb5Lltnp3Nkq2tqalKvdSoLuDlMrcdHdHUWc+Qo9eT4CCJfpNcJGhSQ9PJxFEXp4rKsTF5QIAhSIoO9ez1zJz83V7pHKLeNOTlSsgVXeXNQhxa9JHr5nGnBn58bucbV2EB2wPTJJ590+fgll1wiZ3ceFVABk9Uq9RzZ7a7d8jMYpFylnhofQeRreAOCdERPH0dfSajgidOity7AtQrS9PQ5U5s/PzdynWYBky8LqIDJU7fSiAIBb0CQjujt41hRIQ1jcld5ORAfr1Zruib3IllOvSNvXYBrFaTp7XOmJn9+biSPq7GB7DlMAGC1WvHcc8/htttuw+23347nn38ex44dc7uxpDKlBScCJ4Ymco3eJ2hQQNHbx9GXEipoVRxWbtILUZTWVzo/xhGk2e3OsxM6ljkyE8qZrqy3z5ma/Pm5kTZk9zBt374dqampMBqNGDt2LERRxPbt22G327Fhwwacd955WrVVsYDpYfKV8RFEvsBXJmhQQNDjx1HrNmkxL8dqdV4cNinJveKw3hjUoWUviR4/Z2rx5+dG8mnWw5SdnY2rrroKFRUVKCoqwttvv43y8nJceeWVmDNnjpI2k1rUKDhBHflTyiNyXVWVdEUl9/0WRWm76mpt2kUBSY8fR0EAbrvNva/ErKzOLz61zF4WFSUde+9e6eu8vFz6d+9eabmcYMlbgzq07CXR4+dMLf783Eg7sgOm7du34/7770ePHr+XcOrRowcWLlyI7du3q9o4cpMvjY/wBcw5Gth4A4J0RI8fR4sFePxxedsYDNK8mpkzO9+nJypiOIrDxse733PljQtwrYM0PX7O1OLPz420Iztg6tWrFw4cONBh+c8//4wIXmjrgzcKTvgrpWdtPfRK6aENvow3IEhH9PZxdMyhqa93fRtH0oOiIudDw7Scl6MFb1yAax2k6e1zpiZ/fm6kHdkB0/Tp03Hrrbfi3//+N37++WccPHgQa9aswW233YYbb7xRizaSXIIg5RF1R1fjIwKNkrO2Hnql9NAGf8AbEKQjevo4ykl00FpXCRW8lTxBCW9cgGsdpLn7OQOAfv30/bWnp78h8iGiTCdPnhSzsrLEkJAQ0WAwiAaDQQwNDRXnzJkj1tfXy92dRx07dkwEIB47dszbTdFeTY0o9uwpigaD47K+6x+DQVq/psbbLdcHJa/fhx9K/y8I0k/r9RzLevaU1tOKHtrgT3JyOr6O3f0Igijm5nq75eSH9PJxdKcdgCg+/bT+n5sczc2imJTkXruTkqTt5frtN/mve+ufysruj+Hu+xsSov9LCV/8nJE2XI0N3K7DZLPZUFpaClEUkZycDJPJpG4kp4GAyZLnoGXBCX/nbsqjO+8EXn3V9ddci0p4rManPhbtIA2JorwscHr4OIqi+pnGtNinp3g6S54nXiurFTjjDKChQX77cnP1XdJRD39DpA+aZck7duwYqqurYTKZMGzYMAwfPhwmkwnV1dU4fvy4okaTyrQqOOHvRNG92bSiCLz8cveBCqDdWBJfHM/iC6KipKqPgiCdObvS3QQNotPcHTWrh4+jFnNofDl7WUaGlMSiu/fDobukF93xxMj7yEj3KowIgv5LOurhb4h8i+yA6YYbbsCaNWs6LF+7di1uuOEGVRpFKkpNlW6J5ORIt5VaS0yUlh86FHjBkij+ngjht9+kH0dShMpK987ajv16sxIeq/FphzcgSEVK88l4++OoxRwaX85e5o0LcK2DtKoq4PBh+e3SQwDrCm//DZGPkTvWLzo6Wty9e3eH5Xv27BFjYmLk7s6jAmoOkzPNzdLA5fJy6V93Bk77upoaafByUlLnA5XPPFPZ4HBPDWJvz92B9I7nfPRo9+1obpYGz5eXS/8G6mcoN7fjZygpSVputXq7haRzH34oikFB3U+RNBik9bqaauitj6MWc2g8MS9Ha65OH7VY1DuenM+SnOOWlyt7P8rL1XmOWuNXemDTbA5Tz549sWXLFgwbNqzN8u+++w7jxo2DzWZTMZxTV8DNYaK2LBZp+JnjM6qn8QKVle6NfWi/j9hYZftISpLGeWRktL31abVKvVf5+dKtw+7WDwSiKN1Cra2V0lzFxDDDJHVLq7kTnv44iiLnMHXGapU67fPyOn5dZmVJX5dyCuN2p6tTm+P1MJmkHi05vSRKTylqnNY8iV/pgUmzOUznn38+XnnllQ7LX3rpJYwePVru7og8o7sU4d6mxlgSpeNZAOdjgTxVQdLXqFHxkgKOVqNmPf1x1GIOjb9UxIiKktqzd68UNJSXS//u3SstVzNYArQbeR9o6bf5lU5dkd3D9MUXX+Dyyy/H+eefj8suuwwAsHHjRmzbtg0bNmzARRddpElD1cAepgAl95auN+ilh8nBMch+yRLgscekAJMZ94gU8ZceFActesuYvUwZtXtJPJ39j8jTNOthuuCCC/DVV19h4MCBWLt2Ld577z0kJyfj22+/1XWwRAFM7i1ddzhmh7pzZjKbXZ+1291++vVTvh/g9wx6jzwi/T8z7hEp5stZ4JzRItEBs5cpo3Yviaez/xHplVtXaSNHjsS//vUv/PDDD9i+fTv++c9/IiUlRe22ESkniu6lCJfDYJB+7rzTve2rqoCBA5UPaTt2TNqXWhxBkqtXd8y4R9QlX84C1xktMo0xe5l+MIAlkrgcMDU3N+PUqVNtlv36669YsmQJFi5ciM8//1z1xhEp5u4tXVe0P2svXSrvVlxrdrs0x0pJ0FRQ4F6FQbXpvQAHkZeEhyvbPiJCnXaoTYs5NKyIoR8MYIlkzGGaNWsWgoODWxI+1NbW4pxzzkF9fT369euH3bt3491338XUqVM1bbASnMMUgCoqpGqQajjzTODAgd9/d5byyJFcors5P84oGYzv7uQIrfhaeiQiD/C3OUzOaJFpjNnL9MHT2f+IPEH1OUxffPEFrr/++pbfCwsLcerUKezduxe7du3C3LlzsWzZMmWtJlKb0lu6re3Y0X3Ko9a34uRSMqRNy540d+hx7BCRl/lLFriuaJFpjNnL9MHT2f+I9MTlgOnQoUNt5ilt3LgR6enpiDz9F5KRkYEffvhB/RYSKeFuXtT24uOl25qunLVTU4GffwZ693bvWO4MaVMjpbia9Dp2iMjLOImefB0DWApELgdMYWFhsNvtLb9v2bIFf/jDH9o8Xqe3izYiJbd0W6uoAAYPlnKsupIFrqlJuvUml7vpsNTsSVPCVwtwEHkIJ9ETEfkelwOmESNG4PXXXwcAfPbZZ/j1119x6aWXtjxeWlqK/v37q99CIqXk3tLtjJwirZ5Oh6VWT5oafGXsEJGXcBI9EZFvcfkK8tFHH0VOTg6SkpKQmpqKW265Bf1a1Xx5++23ccEFF2jSSCJF5NzS7YooSj+uZLTzdDostXrSWnO8Vq4GPxw7ROQyZoEjIvIdLmfJA4Ddu3fjo48+Qt++ffHnP/8ZhlYXn6+88grGjh2LkSNHatFOVTBLXoCzWKTCqjab9LuSBAndZbTzRjosqxUYMOD356eEYyzQ3/4GLFrUfdY/x/q8HU4kG7PAERF5h+pZ8gBg6NChuO+++zB9+vQ2wRIA3HHHHboOloi6vKUrV/uMdqIozVmqqPh97pKn02FFRSnv3Wk/Fuihhzh2iEhjnERPRKRvCid1EPkYZ3lRjx6VrlTcuUp5/nkpAEtJAWJjpZpPsbHS73a7FEjITYf1l7+0Db5c7aESReCjj+Q/h9acjQXi2CEiIiIKYLKG5Pk6DskjpyorpSDHXY5Aq/WfkmNZaCjQ0CD9vytD2m6/XQp62lcFzMyUkld0lSpL6fP46ScgObnrwJFjh4iIiMhPaDIkj8gvKc1o50gG4WyZI1gKDu56SFtICNCjB/Dyy9K8p9Zczc6n9Hk42tgVjh0iIiKiAMOAiUjLGkaOXqUePYCnnnI+pO3OO6XAqrGx6+Cru+x8ns7MR0RERBQAeni7AURe56hhJDejnascCSJMJmnuVOshbQYDMHDg7+t1tx+DQcr05yw7n7vPw5GZj8VmiYg6JYpAVZXUmR8ezk52okAiu4cpOjoaMTExHX7MZjMGDBiASy65BCtXrtSirUTa0KKGkTN5edK/rYe0FRZKwVR3wZJD++x8rSl5Hiw2S0TklNUK5OY6z+2Tmys9TkT+TXbSh+effx5PPvkkpkyZgrFjx0IURWzbtg0ffvghsrOzUV5ejtdffx35+fm4/fbbtWq3W3ST9IG3qfTHapXmCNntrgcv7qislN5vQJtaTXKfR3f1pIiIAlhX5fscX78mk1QbPTXV8+3zF7wsIm/RLOnD559/jieeeAKvv/46MjMzkZWVhddffx1PPPEEduzYgVdffRXLli1DnuNuOv3OW7ep2tcICpzEiK6LipLOeILgehpwd9TW/v7/VVVSNjy574coSttVV3d8TM7zcGTmKypisEREPsNTpzSLRZo2arcrm15KnWPvHfkK2T1M4eHhKCkpQXJycpvl+/btw8iRI1FXV4fS0lIMHz4cJ06cULWxSnm1h8kbt6msVqCgAMjPdy9NdSDq7n1SemZu3cNUUSGdHdxVXi4N7XPG1c9bURHrJxGRT/DkKU0vnfX+3PPC3jvSA816mGJiYvDee+91WP7ee+8h5vSk8RMnTiCCGbd+543bVBaL9G2fne1+mupA5EqR1oQE+WcsQZDO6q0TK2iZ1Y7FZonIj3j6lFZQoN70Unf4e88Le+/I18juYXr11Vdx9913Y+rUqRg7diwEQcDXX3+N9evX46WXXsKtt96K5557Dl9//TX+/e9/a9Vut3ilh8kbt6kc30Si6Fqx1OJi3r5xprMirbm50tlZ7ryjnBwpuULr/as9h0nO8yAi8gGePqW5+9UMSPfFXP1q7owrPS9GI7ByJTB2rO/1POml944IcD02kB0wAcAXX3yBF154AT/++CNEUcTZZ5+NzMxMTJgwQVGjteaVgEmti2tX8ZtIe2q+xu58PhzbufP5ICLyIXK/bgVBGsal5JRWWSn15rir9chruVwNDtvzpZH2nr4sIuqKZkPyAOCCCy7Am2++iZ07d+Kbb77Bm2++qftgyStEURps7Y68PPfmy3h7HEEgUDOxQkaGdHaXm2hiwAB56xMR+SC5pzRRBE6cAB580P1j1tW5vy0AvP++e9tZrVLPktxgCfCdkfbeuCwiUoNbPUzNzc3Yt28fjh49iuZ2f9UXX3yxao1Tm8d7mDx9m8pTQ7x8kRYzZ9VKrOC4pdjc7Nr75gjUOJSSiPyYkqFxAPDBB8DkyfK3U3rqNpmkKaJye3rcHXDQmt5H2nuz947IGc16mLZs2YLk5GQMGTIEF198Mf74xz+2/EycOFFRo/2O0ttUrVNQu0KLNNW+TsuZs2olVkhNBf79b9ffN8ds2PR035/5S0TUCXdPaQ7ufkWazdIQN3fvqdnt8gdtKOl5ac1x302vpwdPXxYRqUV2wHTXXXdhzJgx+P7771FdXY2ampqWn2p/vOBWQsssaM7wm6gtT6RVioqSBlXv3Svd+iovl/7du1daHhnp2n4OHpR3duZQSiLyc0pPae5+RQqCNB9ISU+P3OFjSoPD1vR8evD0ZRGRWmQPyevZsyd27drVoQ6TL/D4kDxPD5FjX/fvfClTIIdSEhF1oPSUBriftc5qlaaKOkZcu0POKVVpWb72PHF6cGeku5JhloIArF/v3jBLos5oNiRv3Lhx2Ldvn6LGBQzHbSp3ZGXJ/5ZzdxyBsxpBvkzOzFk9jF/gUEoiog6UDo0D3P+KjIoCXnzR/eMC8gZtKO15aU/L04OSke6CAMye7f6xr7zS/UEhoigFsRUV0r9MIEFyyA6YMjMzMW/ePKxatQo7duzAt99+2+aH2pGbBc1gkNafOVP+sTwdoOmVr2UK5FBKIqIOlJzSWnP3KzItTdlx5QwfUyM4dOjZsw4jRpRg7NitOHmyBIDCc0wrSka6OwKt3Fz3ghV3p+/6exFg8gzZQ/IMTi78BUGAKIoQBAFNTU2qNU5tXqnDBMgfHrZ+ffeJAjoT6HWYfHF4G4dSEhE55emhca15+nSiJEvekCG7cdddL2Hq1PVITCyDwdB6JwKARABTAdwFYKj8A0DZSPeuksrKJacmk6vJbNet02dWQdKeZoVr9+/f3+XjgwYNkrM7j/JawASol4La1WN5KkDTG18MPnwxyCMi8pAPPwSmTJG/nRpfkZ4ssir3ficAxMeX4+WX78SkSR+hsbEHgoNPdbF2DwCnAFwB4GUArk+aUnIvdutW94rxdsbV99WXpjKT92g2h2nQoEFd/lAn1EpB7eqxioulbytB6PiN4lhmNPpXsAT45vA2DqUkIurU5MnAnXe6t63Sr0hPjqqXUxMdAG699TXs3j0UEyd+DADdBEuAFCwBwMeQeplec7lt7o50f/ll94vxdsaV+Vm+NpWZ9M+lHqb//ve/mDJlCoKDg/Hf//63y3Wvuuoq1RqnNq/2MLUmitJfem2tNMg5Jkabi16rVZqXk5cnfbs4JCVJZ5GMDNfTXrenRSFYNfhiDxPAoZRERF1wDM2z213r7VHzK9LTgzZcGb720ENP4sknH4EoKj31PgHg4S7XUDIIIiZGulTQQnk5EB/v/DFP9gySb1N1SJ7BYMCRI0fQp08fp3OYWnbGOUz6pGaAZrVKt5ry8zsGYZmZUhDmzQt4Xx7eFshDKYnIp3jjnpnjK9LRI9AZLb4iPTmqHuj8ficg9Sy99trtyg/S4jUAt3b6qBrp3bXQ2f1NX74MIM9TdUhec3Mz+vTp0/L/nf3oOVgKaIIgfavExys7qyktBOuJnJ6+PLwtkIdSEpFP8GbGMcdXpMnk+a9IT46qB5zXRF+7Fhg6tBz5+Zkqnz5nAyjv9FGlI93V1l0lFFbqIC3ITvrgywK2h0kNSmZPerpXyteHt2k5lJKIyE16yTjm7a9IT42qd6axcRKCgj6GwdDdfCU5egCYCGCD00f11sPU3dA5pUWAuxrqR/5H1SF5eXl5Lh84S8eDPxkwuUlpehxvnGH9YXibN8/KRESt6DHjWOB9Re4GcI7G+x/SYamSIW5q35J35f6mr05lJu9QNWBKaBeq//bbb7DZbIg6/Wm1Wq0wmUzo06cPytoP1dIRBkxucnf25J13Aq++6r0zrKcHnRMR+SFf77T3H1kAVuD3bHdq6gHgbgAdb5CLIvDUU8Cjj7qX9KG6Wp3AydX7m5zDRHKoOoepvLy85efJJ5/EyJEjsWfPHlRXV6O6uhp79uzBeeedh8cff1y1J0A6IYrSUDp3vPyydHb1Vk5PTw86JyLyQ+6mlC4s1LZdgWc9tAmWcHq/H7RZ0nq+2iOPyAs+HOnV581T3jK5c9N8eSoz6ZfsOUxJSUl46623MGrUqDbLd+zYgeuvvx7l5Z1PHPQ29jC5wZODl7XM6Rl4YzeIiBTj3Xq9qAUQCUDLaecCgOMAwl1Kbd6Z1j1BY8fK6510fFZaH8+duWnsFSVXaVa49vDhw2hsbOywvKmpCb/++qvc3ZHeeTo9Tl6edtnz1MgUSEQUQJhxTC9KoW2whNP739cyX81R88rV995ZT5CcYrwGg/TzwQe/ZwasrJSC7qwseYk85B5XEKTR+QyWqDOyA6bLLrsMt99+O7Zv3w5H59T27dtx55134vLLL1e9geRl4eGeOxbPsEREuqL0nlltrTrtoJMeOUpt7Umkp3c/9diZzka6y62YkZqqzv1NVuogNckOmP75z39iwIABGDt2LMLCwhAaGopx48ahX79+eO2117RoI3mT2Sz1h3uyR4ZnWCIiXfj6a2XbR0So0w4K9chR/vvfUFnz1RyeeqrrniBvTSnmVGZSi9t1mH766Sf873//gyiKGDJkCAYPHqx221THOUxucidLnhLM6UlE5HWOeSAnTsjflnOY1FYHoBe0HJYnigJGjDiO778P13S+mremFHMqMzmjalpxf8GAyU3uzJ6UM/DZgWdYIiLdUHKvTMscPoFKFJMhCKXdr+impqZk9Oix1+3tea+TfJGrsUEPuTtuamrCqlWrsHHjRhw9ehTN7S6gN23aJL+1pG+O2ZNpaVIw5EpNpTvukNKKyz3TMqcnEZHXKakoAUjzQmbOVK89gcxqlVK7R0VNxU03rUBwsDZ1mE6cmKJoD7W1DJjIf8kOmO677z6sWrUKaWlpOPfccyHw4jYwOGZPdlcI1miUUs2MHQu8/rr8nJ48wxIReZ0jO567pAt81ZoTsFqn9x4y5C5kZCiIYrt0Ck1NdyvaA+erkT+THTCtWbMGa9euxdSpU7VoT6eefPJJFBcXo6SkBCEhIbCqWeCUXOOYPVlYKKX/bn02TUzsWChBbq8Uc3oSEemC0ux4Y8ao045A5kjv7Rjhvnv3UGzYcAUmTvxY5V6mHgAmIipqCJKS3K+5FROjYpOIdEZ2lryQkBAkJydr0ZYuNTQ04M9//jPuvlvZHRBSKCpKCoz27u2+UAJzehIR+SSlFSXY26BMTQ1w3XXSvcbW9xvvvPNlNDb2UDkHUw8AL0MQgMxM9/bA0fTk72QHTPPmzUNubi48nStiyZIlyM7OxrBhwzx6XOqEq4VgmdOTiMjnuFtRQhCk7djb4B6rVUq2kZIiDcNrf6lVUZGArKx8lYOTFwAkAACuuca9IsVXX61me4j0R/aQvM8//xwff/wxPvjgA5xzzjkIDg5u83hRUZFqjVPq5MmTOHny92Jvx48f92JrApijVyozkzk9iYh8gKO3ITtb/rbsbXCPY75Sd2nc//GP23DGGb/iyScfgSgqfa2fBHBry2/vvOPeXt59lxkRyb/J7mGKiorCtddei0suuQS9e/dGZGRkmx89Wbp0aZu2DRw40NtNCmyu9koREZHXZWQAJpM0zdQVBoO0PnP3yOeYr2S3u7b+U089jNtuexX19WFobJR777sHgDAArwF4qGWpIzOiO72KeXmeK9VI5A1ercO0ePFiLFmypMt1tm3bhjGtZo+uWrUKc+bMcSnpg7MepoEDB7IOExERkQtaJx5wJXcPp6PKJ7fUYWvx8eV4+eU7MWnSR2hs7NFNMogeAE4BuALAy3AMw3OorARiY+Udv/32TCtOvkazOkwAcOrUKWzevBmlpaW46aabEBERgV9++QW9evVCuIyZorNnz8YNN9zQ5Trx8fHuNBEAEBoaitDQULe3JyIiCmRyK0owWJKvoMD5fCVXVFQkIDV1A4YM2Y277noJU6Z8gOTkUghC650JAJIATAFwN4AhTvelNDMi6zD9ThSl1Px1dVICFQ6q8X2yA6b9+/dj8uTJOHDgAE6ePIkrrrgCERERePbZZ1FfX4+XXnrJ5X317t0bvXv3ltsEIh9VB2AfgJMAQgEkA1CYioqISGNyK0qQ65QWCHbYs2co5szJQ14esHeve+caZkZUzlFkOD+/7d9JUpI0JzAjg9VTfJVbhWvHjBmDXbt2wdzqVsK1116L2267TdXGtXbgwAFUV1fjwIEDaGpqQklJCQAgOTlZVq8WkWftBvASgPUAygC0v+uXCGAqgLsADPV467rEW2REdBpz92hDaYHg9qSEG+EARsre1pEZ0V/qMHn6FNa6yHB7ZWVSApWHH5ZKVKamatcO0obspA+ff/45HnnkEYSEhLRZPmjQIBw6dEi1hrW3aNEijBo1Co899hjq6uowatQojBo1Ctu3b9fsmETuKwcwCcA5AFYAKEXbYAmnfy89/fg5p9cv92AbnRBF6ey9aJF0BoyNBRISpH9TUqR8tywaTRSwmLtHXUqHwTmokXBDEIDZs90bGqinzIitU7N76hTWOmmHo9Bwa45ldru0nsWifhtIW7IDpubmZjQ1NXVYfvDgQURo2B+7atUqiKLY4eePf/yjZsckcs9rkHqLPj79e3cV2R2Pf3x6u9c0alcXHGeYAQOA5GTg8ceBioq26zhukcXF8dueiEgFagyQcSTcKCpyf7iX4xSQlyf/2HrKjGixSKeo7GzplNWaVqcwq1XqWeouMQogPS6K0vq89+hbZAdMV1xxBXJyclp+FwQBdXV1eOyxxzB16lQ120bkg54EcDuAenQfKLV36vR2t5/ej4e0PsMcPtz5erxFRkSkKncLBDsIgpRwQ0l2wtangPb3yboiN1ATRSmTXkWF9K/aOZq91cvjSNrhaobD5mZp/cJCdY5PniE7rfgvv/yCiRMnIigoCHv37sWYMWOwd+9e9O7dG59++in69OmjVVsVczV1IJF7XoMU7Ki5v1u7XUsRV3MGt2cwSGfpgwc5g5WISIHcXClYkRtAREcD8+cD99zj/tewO6cAR3BnMrmWGdETiRDkpmZX6xQmitJQP3fnfe3dq5+hjIHK1djArTpMdrsdb775Jnbu3Inm5macd955mDFjBoxGo6JGa40BE2mnHNJwunoV9xkGKWlEQncrukdJ8Q9A+pbPyWF5dyIiBZR+FbsbeLh73Ph4KcBzJTNi+0QIzlLSm0zKEyG4E3SqcQpj7Srfp2nA5KsYMJF2JkGagyR3GF5XegCYCGCDivtsxd3bmg68RUZEpAp3O/sB9wMPd08BOTnAffd1v57cosfFxe4FTd7s5amokJJKuKu8XApAyXs0DZh+/PFH5OfnY8+ePRAEAWeffTZmz56Ns88+W1GjtcaAibSxG1KWOy3377zQoNvcPcM4w1tkRERuaZ36+uuvgVmzpB4fx2NyyAk8lJwCzGYpyIiO7nwdTw6R82YvD3uYfJ+rsYHspA9vvfUWzj33XOzYsQMjRozA8OHDsXPnTgwbNgz/+c9/FDWayDe9BDdKmrmoB6S04ypzFP9Qo4O5tlb5PoiIAoiz1NfTpwNn/P/27jxOivrM4/i3BhDmApxBCYbhGnCDoiKiBEWBl5EhEhXEjW5UQIlKPDDiChIvdI24nhyJZyKgGI8NeEXdiZsokUUJoIgxiAgDCIMbBhwYjswIU/vHz26nYXqmq7u66+jP+/XiNXZ1VfevYazqp37P73k6SiNHSl27On9NJxXYUrkEbN/efKW5TBZCSLU0eyqXsGSLdliWOc5vvasQn+MZph49euiSSy7RXXfdFbP9jjvu0DPPPKP1B9dx9BFmmDIorE1PG/1cvWT6KaVLT0lr3X3JVPMIGuIWGQAkLNF1PXPmSH/7m+ny4PbanFQvAZZlZoUam83KdIqc17M8Xq2fgjvSlpKXl5enVatWqWfPnjHb165dqxNOOEF7G2tx7BMETBmQiXI4Xoj3uY7vLq2skNIaC1qSdklyoWFHRKpXGIk1TADgkJN1PZKZcfryS/cDDzcuAfHS6DIdwHhdqc6rCn1wR9pS8oYMGaJ33333kO2LFy/W6aef7vTlECZedIzLhKY+V066gyVJsiV97u5Lptr8I8JP7d0BwMeSaXC6davztDnbNvf1duyIv48bl4B4aXSZTpGzLHM/NhluXMLatzfFNiKzbk1xo8kwvOE4YDr33HM1ZcoUXXvttZo/f77mz5+va6+9VjfffLNGjRqlV199NfoHWcTtjnHp7nCXqOY+12GZGkituy+XyhVG8l97dwDwOafrelK97DUVeKR6CWho1qzYsRakmAxRWOj8mLFjzSWpuYAlwu1LWFmZSU/MzTV/t/GCMNuWrrhCOuUUd94XmeM4JS8nwd9Gy7J04MCBpAaVLqTkpYmb89F+SulL5HOdIGllJgbzoaS+7r5ksk04IrfRUmktDwBZxM3CpIlqLrUt1f5P8d7LqxQ5p2XM03EJq66Wpk6VHn88/me3LHd6T8EdaUvJq6+vT+iP34IlpJFb5XD8ltKXyOf6XFKKF5rmWTKFH1zmJI+gobw8giUAcMDNwqTNSbQCW8NLQKppaQ1ns7xKkWtulieyLTc3fZewpUulJ59seh8nyTbwD8cBExDDts1sUDIazuO7ndKXqkQ/1x5JaS8MWSpXCz40lGgegSR16mTKAW3ZQrAEAA6kuq7HqUQDj8gl4LAU08sPTqPzKkWurMwkr8yYYWarGurRw2xP1yWs4Rq15gJjJyXg4Q8JB0xLly7Vm2++GbPt6aefVvfu3XXkkUfqyiuvVG2ty+ss4H/J3jZruCo1mZWw6T7LOPlcb0j6Ol0DaSnph+l6caOpK0y3btLtt5sZvi1bzFW4Xbv0jgcAQibVdT3pDjz273c+Jin+bJaXhRDatzeXqrVrTapgRYX5uXZtei9hmew9hcxLOGCaNm2aVq1aFX388ccfa/z48frBD36gm2++Wa+99pqmT5+elkHCx9woh+PHs4yTz/WYpFbpGsh+ST9L14t/K94VZv166c47TcMOquEBQFJSaXDaqVP6Ao+G9yuTFW82y+sUOcsyf+/duqW/FaRbyTbwr4QDppUrV+rMM8+MPn7++ec1YMAAPfnkk5o0aZJmzZqlF198MS2DhI+letusoMCfZxknn2u1pD8qDbNMLSWdJam32y8cXyavMACQJVJZ13PzzekLPJzer2wokdksL1PkMsmNZBv4W8IB01dffaWOHTtGHy9atEjDhw+PPj755JP1xRdfuDs6+F8qt81KS789W/jtLOP0c10lEzC5Gr+1lPS4my8IAPBIKut60hF4pDIrEpHIbJZXKXKZlOneU8i8hAOmjh07qqKiQpJUV1enDz74QAMHDow+X1NTo1at0paXBL9KtRzOnj2pvX+6zjJOP9cGSRPlchPbX0nq7uYLAgA8kuq6HrcDj1Qr973wgrMALcwJDF70nkJmJRwwDR8+XDfffLPeffddTZ06VXl5eTr99NOjz69atUqlpaVpGSR8LpXbZn4+yzj9XHNypDvdumnwS0njXXotAIAfuLGux63AI9VZkf79nR/jl570bks12aa5EvDwXsIB0913360WLVpo8ODBevLJJ/Xkk0/qsAZ1KJ966ikNC3oSKpKTym0zP59lkvlcA/8g6UlJbWRS6pxo+c1xv5H0C+fjBQD4nl/W9WTyfmV1telK0auXdMQRpo7QEUeYxzNnBqO0dlPBnle9p5A5lm07i+937typgoICtWjRImb7jh07VFBQEBNE+U2i3XyRpPJyU25n717z+OCziWRmbBYujL0SzJxpmtI6bQk+Y4Y506RbUp+rQmZh01sygVBTNVsjz58ls2aJNDwAyAa2bZbi1tSYAKSoKHNfnm3bBCzr1zu//PboYVIBExlropfQBQtMMOk31dWmOMbs2SaFMaK01ARJY8ea+6vV1VLnzqZdZCJFNHJyzEzi5s3ulFNHchKNDRw3rm3Xrt0hwZIkFRUV+TpYQgYke9vMqw53iUrqc3WXKZ33iUxZ8J46dIGT9c32n0n6+zf7EywBQLbwcl1POmdFIrMx8+b5qye9U+XlJgi64QYTWDa0fr3Z3rmz2c/L3lNIP8czTEHGDFMGOb1tVl5uzpbNNa+NnGXS0bQhESndDtwt6XNJtZJaywRLKeZEAACQJLdnReLNxiTCbzMuTr+WvP66ub+abLINvJG2GSYgIU5vm3nd4S5RKd0OLJDUV9KAb34SLAEAvOPmrEhTszGJyERP+kQ1bOjbXCBZX2/2Gz3aHOeXNWpwFwET/IOzDAAAGeXG/crIbEy81Dsn0tmTPlFOG/oeHOxlQ++pbENKHvzJy5Ww8AfbNo1Cdu825ZzC1rgDAHykutp84Z8169DiBhMnmuXGjX3Rd5rWl4iqKnPK90KmimHAH0jJQ7CFucMdmhaG+rMAEDDJzoo4nY1JRLp60ici2Ya+tm2O27EjPeOCtwiYgESEtdue3zgpSQQAcJ2T+5W2bQo8uC2dPembk2pDXy+DPaQPARPQlGRnOwiwnGsuCd7v9WcBIMskOxsTTyZ60jcnkw19ERwETEA8ycx2kE6WnFRKEgEAPJHqbExjmuvxlG7FxSZoczoGPwR7SB8CJqAxycx2kE6WvFRLEgEAMi7V2ZiGMt2TPp50NvRFcFElDzhYMp38DjtMqqszj510uAMliQDgG0ErDprs6ftgXvekP5jbDX3hX1TJA5KVzGzHP/9JOlmyKEkEIMsFNZs7ldmYyPF+6El/MDcb+kosaw4DAiagoVRK/iR6BiSdLBYliQCEUH29tGaNtHix+RnvflrQs7nHjjWpdM0FFo3xc096Nxr6BjUQxqEImICG3C750xQ/tDP3A0oSAQiRjRul88+XWreWvvc96fTTzc/Wrc32jRu/3TcMxUGdzMZE9pk3L7EeT14rKzNpdjNmmOCuoeaCvaAHwojFGiagoQ0bzC2gTPGynblfsIYJQEj88pfSrbc2v9/dd0vXXJP+dTKZXBNVXm6yzffu/fa9IyLvmZdnUtf8NpuUCNs2GeA1NeY+XVFR/L/LSCDcXKY+y5q9xxomIBlulvxJBOlklCQCEAqJBkuS2e/ii9NXHNSLVLBUZmOCINGGvnTJCCdmmICG3Cr5kyhmmAxKEgEIsI0bzRfpdEtkYj3RmZ4FC9I3q+FkNiZsZs406XZOEyZmzDD3AJFZzDAByUi15I+T96HD3bfcLkkEABl0ww2ZeZ/mioP6ZU1UorMxYZNK3SiWNfsbARNwMKclf5K9EpBOFsuNkkQAkGH19dJrr2X2PRvL5iYVzHt0yQgvAibgYE5nO3JyTPmjRAMsv7Qz96OwJ8EDCJ21a6X9+zP7no0VB02mhSAdLtxFl4zwYg0TEI+Tkj+27awkDjMkzcvmJHgAgbF4sSkdngnx1jBRbDQx6a4aWFVlimukcjzLmjOLNUxAqpzMdqQjnSzbW4NnaxI8gEBJ5QtyMhrL5vZzKpgfLmWZqhpYXGyWJzu9XLGs2f8ImICmtG9vrk5r15ozfUVF/G57bqWT0RocAAKjVy+pZcv0v09T2dx+TAXzy6Uskw1k6ZIRXqTkAemQbDqZH+rBAoBLMtk41Uvnny+99JLz4047TXr//dSzuf2WCuaXS5kXDWTpkhEspOQBXkomncwv9WABIEV+mV3IlIcfTu64Z591J5vbT6lgfrmUeVU1kC4Z4UTABHf5IVk5iKgHCyAkMpkC5Rddu0p33+3smHvuMce5kc2d7lSwRC/tfrqUeVk1kC4Z4UPABHdk2+1Et1EPFkAI+GV2wQu33JJ40HTPPdLUqd8+drJcNh6nLQQT6XDh9NLul0uZHxrI0iUjXFjDhNT5JVk5qKgHCyAEWLthbNwoTZokvfpqbH+mli2lc8816XtduqTnvZ2u2WlqdsPppd1PlzK/remiS4Z/sYYJmZHNtxPd4ud6sACQIL/MLnita1cTRNTWSp99Jr37rvlZW2u2pytYktxLBUvm0u6nS5nfqgbSJSP4CJiQPD8lKweZ387sAOCQH1Kg/CYnx8y4DBpkfiaaKpeqVFPBkr20V1amNm43L2UFBakdX1jozjgQHgRMSB63E93BmR1AwPlpdiHbNFaQIZU1Ucle2v/wh9Q+h5uXMj9VDUQ4EDAhOdxOdA9ndgABx0R55iVSkMFpKlgql/bf/tY/lzIayMJtBExIDrcT3cOZHUDAMVGeWekq3Z7KpX39eunyy50dF5GOS1k6qgYiexEwITncTnQXZ3YAAcZEeeaks9ZSqpf2H/3IP5cyGsjCTQRMSA63E91t0suZHUCAMVGeGemutZTqpf273/XXpYwGsnALAROSk823E9PVpJczO4AAY6I8/dJda8mNS7vfLmU0kIUbCJiQnGy9nZiuxPEIzuwAAoqJ8vTKRK0lty7tfruUpVI1EJAky7azp1xZot18kaBsa+vutIX666+bq0ayaA0OIIDKy00a2N695nHDbxmRU1hengmWuPeTuKoqk8yQyvHFxc3v5/alnUsZ/CzR2IAZJiQvm24netGkl9bgAALIb7MLYZGpWktuX9q5lCEMCJiQGr8lK6cLTXoBIGGkQLkvk7WWsuXSDiSKgAmpC/vtRJr0AkBSmF1wT6ZrLYX90g44wRomuCuMycqZShwHAKAJM2ea2kJOvrlZlgluJk5M/n3DeGkHJNYwwSthvJ1Ik14AgA94Vbo9jJd2wAkCJqA5fmnS62ajXABA4GRTrSXATwIRMG3YsEHjx49X9+7dlZubq9LSUt1xxx2qq6vzemjIBl436U1Xo1wAQOBQkAHIvEAETJ9++qnq6+v1+OOP65NPPtHDDz+sxx57TL/4xS+8HhqygZdNetPdKBcAEDgUZAAyK7BFH+6//349+uijWn/wl8gmUPQBSVuwQLrggsT3tyyTOJ5Kk95MN8qNx7al7dvNWq6CAhLYAcBHKMgAJC/0RR927typomZSnWpra7Vr166YP4Bj1dVmpa2TK5Btmx5MyQZLXjTKbWwMpAICgK9RkAFBEtTl2IEMmNatW6fZs2drwoQJTe43ffp0tWvXLvqnpKQkQyNEqESa1jr9v3rz5tTf06tGuaQCAgAAlwT9HqynKXnTpk3TnXfe2eQ+y5YtU//+/aOPKysrNXjwYA0ePFi/+c1vmjy2trZWtbW10ce7du1SSUkJKXlInG2b/5vXr3fe+KJHD9PW3untPi/esyG/pAICAOAQWeT+U15ukmD27jWPG361ifzb5OWZ1Q+Z/jqRaEqepwFTVVWVqqqqmtynW7duatOmjSQTLA0dOlQDBgzQ3LlzlZNoI4JvsIYJjrnVtNbJGdzLRrnV1WbmaN++xGa3cnJMKaZU1moBAJCi6mqTnDF7trRu3bfbS0tN3aaxY7lMecHv92ADETA5sWXLFg0dOlQnnXSS5s+frxYtWjh+DQImOLZhg5k3TtZHH0lvv+3sDJ7qe1ZUmGT2ZHjVRh4AgCT5eQYjmwXhHmyoij5UVlZqyJAhKikp0QMPPKBt27bpyy+/1Jdffun10BB2qTatHTjQ+Togrxrl2rYJ7JIxa1ZwVm4CAEIjMoOxb5+5DB18KYps27fP7MfS28zxejm2mwIxwzR37lxddtlljT7nZPjMMMGxZNcTReTkOJ+D9moNk5epgAAAOBSEGYxs5fVy7ESFaoZp3Lhxsm270T9AWqXStNaykisJ7lWj3N27kzsuoqYmteMBAHAgTDMYYbN9u1mJ4PSrum2b43bsSM+4khWIgAnw1NixJvk50SIjkYAl0bNEY2fwZN4zN1caMiT5xgZepQICAOAQWeT+FrZ7sARM8Dc/dDhr396sFLWs5gMYy0p+jA3P4Mm859690gknJN/YoLjYFKNwOkNlWea4ZhpJAwDglrDNYIRN2O7BEjDBn/zW4ayszKwzys01AcLBQUVkW25ucq/f2Bm8ufdseOzBzyXTXNarVEAAABwK2wxG2ITtHiwBE/ynvNx80XdaXS7dysrMStEZM8yKxIZ69DDb33svtfc4+Aze1HtK8dP/ki0L5DQVMCfH7D9mTGL7AwDggrDNYIRN2O7BBqJKnluokhcAfu9wFmHbZjaopsacdYuKzHjSWWku8p5btphy5f/8Z3rKAjn9N3jjDWnYsOZfFwAAlwSlCls2C0IVw1BVyUOWqK421eKa+6IuNV5dLpMsywQ23bqZn5GzbjrnoCPv+fbbiZ99JOdlgZykHxIsAQA8ELYZjDByshw7cg924UJ/lnwnYIJ/hKE+aLrP4JkqC5RI+uGWLQRLAADPkEXuf2G5B0tKHvwhTHPr6ZyDTjXlb9s2qUMHZ8fESz8EAMBjZJEHQ3W1ub89a5apcRVRWmruF48dK7Vrl/lxJRobEDDBH9K59scL6TqDb9hgKgYmq0sXadIkc2by45w3AAAOlZebDP29e83jht9sI/f38vJMuhfBkrf8dg+WNUwIlrDVB03XHHSqZYG++MK7KoMAAKQBWeTBEW8JuN8xwwR/CNsMU4Tbc9DJpi4ezOsqgwCApNi2adq6e7e5hxakL52Z4LcZDPgbKXmNIGDysTCtYWqMm2fwmTPNLFGq/+t6Ub8TAJCU6mpTG2n27EPvv113HZnWQDJIyUOwhL0+qJtz0E7LAsUTqTL4yCOpB18AgLTxaz93IFsQMME/qA+aGCeNDZpj29Itt0g9e5qZKy96WgEA4orUENq3z5yyD76/Fdm2b5/Zj6AJcB8BE/wjTB3O0u3gohKp4hYlAPhOkPq5A2FGwAR/CUuHs0xoWBaoS5fUX49blADgK2Ho5w6EAUUf4E9+7XDmV9u2SUce6c5rhakYBOWkAARU2GshAX5A0QcEW/v2JjBau9aUDK+oMD/XrjXbCZZidehggkk3ro5huEVZXW3WZPXqZcrVd+9ufvbqxVotAIGwfbu5X+j0trZtm+N27EjPuIBsRMAEfwtqh7NMS6XKYDyzZgWzeh7lpACEQNj6uQNBRsAEhIVb5cal4N6ipJwUgJAoKEjt+MJCd8YBgIAJCA83y41HBOkWJeWkAIRIcXFymdaWZY4rKkrPuIBsRMAEhElzVQadCtItSspJAQiRsPdzB4KEgAkIm4blxnv0SO41gnaL0ral2bOTOzaoa7UAhB793AF/IGACwqhhlcFf/jK51wjSLUrKSQEIIfq5A/5AwASEmWVJV18t5eeH+xYl5aQAhBT93MPFtk2XlA0bzE8SHIKBgAkIu2y4RUk5KQAh1lSmdY8eZvuWLQRLfkZ7wGCzbDt7YttEu/kCoVRebqrC7d1rHjf8Xz9yyzIvzwRLQbvq2ra56qxf7+x2nWWZbxtr1wYn/RBAVrNtk0VcU2Pu9RQVcfryu0QvvwsWmOAYmZNobMAME5AtwnyLknJSALIE/dyDhfaA4cAME5CNwniLsrpa6tzZXHUSKS2ek2OS/jdvDlb6IQAgELgs+R8zTACMxlaYhvEWZTas1QIABAbtAcODgAkIq6++MiXFu3XLnhWmlJMCAPgA7QHDhYAJCJvqamnCBDNzdOut0qZNsc+vXy/dcIPJEwhjsnSY12oBAAKB9oDhwhomIEzKy6XzzpNqa5vfN5KW9vrr4S3LE8a1WgAA39uwwSR2JKuiwiSIIL0SjQ1aZnBMANKpvFw6+2xnydI5OabWaVhXmEbWahUXez0SAEAWoT1guJCSB4RBdbUJfJxOGLPCFAAA1xUXS6WlzpMaLMscV1SUnnEhOQRMQBjMmyft2ZP8KlFWmAIA4BraA4YLARMQdKmU4okczwpTAABcNXaslJfXfKeLiJwcs/+YMekdF5wjYAKCLlKKJ1U1Nam/BgAAkER7wDAhYAKCbvdud16HFaYAALiK9oDhQMAEBF2qpXhYYQoAQNrQHjD4KCsOBF2kFM/69ckXbmCFKQAAadO+vbnUXncd7QGDiBkmIOhSKcVjWawwBQAgQyLtAbt1Mz8JloKBgAkIA6eleCJyclhhCgBAwNi2VFUlbdhgftIZJL0ImBA+QTqLuDVWJ6V4Itq0YYUpAAABUl0tzZwp9eolHXGE1L27+dmrl9leXe31CMOJgAnhEaSzSDrGenApnngsS/rZz6QvvyRYAgAgIMrLpc6dpRtuMMuWG1q/3mzv3NnsB3dZtu3n2+/u2rVrl9q1a6edO3eqbdu2Xg8Hbiovl0aPlvbuNY8b/lpHgoe8PDMLU1aW+fE1lO6xVldLTz8tzZoV25+pSxdpwgQTLJGCBwBAYJSXSyNGmK8M9fXx94v0c3r9de+/7gRBorEBAROCL0hnkUyO1bYpxQMAQMBVV5uZo337mv7qEJGTY5JNNm/m/mhzEo0NSMlDsFVXm9ma5gIQyTxv22Z/L9LzMj1WSvEAABB48+aZpJREgiXJ7Ld3r0k2gTsImBBsQTqLBGmsAADAc7YtzZ6d3LGzZvm77lWQkJKH4LJtUyTBacNWyzKttdeuzdysS5DGCgAAfKGqytSESuX44mL3xhM2pOQh/LZvN0UNnMb8tm2O27EjPeNqTJDGCgAAfGH37tSOr6lxZxzZjoAJwRWks0iQxgoAAHyhoCC14wsL3RlHtiNgQnAF6SwSpLECAABfKC6WSkudZ+VbljmuqCg948o2BEwIriCdRYI0VgAA4AuWJV13XXLHTpzI8me3EDAhuIJ0FgnSWAEAgG+MHWv62eck+K09J8fsP2ZMeseVTQiYEGxBOosEaawAAMAX2reXFiww906b+woR6Xu/cCFNa91EwIRgC9JZJEhjBQAAvlFWJr3+upSba74eHJx4EtmWmyu98YY0bJg34wwrAiYEX5DOIkEaKwAA8I2yMmnzZmnGDNOisaEePcz2LVv46pAONK5FeFRXS08/bVpbr1v37fbSUrMOaOxYqV07z4YXI0hjBQAAvmLbpkVjTY0ppFtUxHLnZCQaGxAwIXyCdBYJ0lgBAABCJNHYoGUGxwRkhmWZMt7FxV6PpHlBGisAAEAWYg0TAAAAAMRBwAQAAAAAcRAwAQAAAEAcBEwAAAAAEEdgAqZzzz1XXbp0UZs2bdSpUyddeumlqqys9HpYAAAAAEIsMAHT0KFD9eKLL2rNmjVasGCB1q1bpwsuuMDrYQEAAAAIscD2YXr11Vc1cuRI1dbWqlWrVgkdQx8mAAAAAFLI+zDt2LFDzz77rE499dQmg6Xa2lrV1tZGH+/atSsTwwMAAAAQEoFJyZOkKVOmKD8/X8XFxdq0aZNeeeWVJvefPn262rVrF/1TUlKSoZECAAAACANPA6Zp06bJsqwm/yxfvjy6/0033aQPP/xQf/zjH9WiRQuNGTNGTWUUTp06VTt37oz++eKLLzLxsQAAAACEhKdrmKqqqlRVVdXkPt26dVObNm0O2b5582aVlJRoyZIlGjhwYELvxxomAAAAAFJA1jB16NBBHTp0SOrYSJzXcI0SAAAAALgpEEUf/vrXv+qvf/2rBg0apMMPP1zr16/X7bffrtLS0oRnlwAAAADAqUAUfcjNzdXChQt15pln6l/+5V90+eWXq0+fPlq0aJFat27t9fAAAAAAhFQgZpiOO+44/fnPf/Z6GAAAAACyTCBmmAAAAADACwRMAAAAABAHARMAAAAAxEHABAAAAABxEDABAAAAQBwETAAAAAAQBwETAAAAAMRBwAQAAAAAcRAwAQAAAEAcBEwAAAAAEAcBEwAAAADEQcAEAAAAAHEQMAEAAABAHARMAAAAABAHARMAAAAAxEHABAAAAABxEDABAAAAQBwETAAAAAAQBwETAAAAAMRBwAQAAAAAcRAwAQAAAEAcBEwAAAAAEAcBEwAAAADEQcAEAAAAAHG09HoAAICD2La0fbu0e7dUUCAVF0uW5fWoAADISswwAYBfVFdLM2dKvXpJRxwhde9ufvbqZbZXV3s9QgAAsg4BEwD4QXm51LmzdMMN0vr1sc+tX2+2d+5s9gMAABlDwAQAXisvl0aMkPbtM+l4th37fGTbvn1mP4ImAAAyhoAJALxUXS2NHm0Covr6pvetrzf7jR5Neh4AABlCwAQAXpo3T9q7t/lgKaK+3uz/9NPpHRcAAJBEwAQA3rFtafbs5I6dNevQ1D0AAOA6AiYA8Mr27dK6dc4DH9s2x+3YkZ5xAQCAKAImAPDK7t2pHV9T4844AABAXARMAOCVgoLUji8sdGccAAAgLgImAPBKcbFUWipZlrPjLMscV1SUnnEBAIAoAiYA8IplSdddl9yxEyc6D7QAAIBjBEwA4KWxY6W8PCknwdNxTo7Zf8yY9I4LAABIImACAG+1by8tWGBmi5oLmnJyzH4LF5rjAABA2hEwAYDXysqk11+XcnNNQHRwql1kW26u9MYb0rBh3owTAIAsRMAEAH5QViZt3izNmCH16BH7XI8eZvuWLQRLAABkmGXb2dMqfteuXWrXrp127typtm3bej0cAGicbZumtDU1pnR4UREFHgAAcFmisUHLDI4JAJAIyzIlx4uLvR4JAABZj5Q8AAAAAIiDgAkAAAAA4iBgAgAAAIA4CJgAAAAAIA4CJgAAAACIg4AJAAAAAOIgYAIAAACAOAiYAAAAACAOAiYAAAAAiIOACQAAAADiIGACAAAAgDgImAAAAAAgDgImAAAAAIiDgAkAAAAA4iBgAgAAAIA4CJgAAAAAIA4CJgAAAACIo6XXA8gk27YlSbt27fJ4JAAAAAC8FIkJIjFCPFkVMNXU1EiSSkpKPB4JAAAAAD+oqalRu3bt4j5v2c2FVCFSX1+vyspKFRYWyrIsr4eTNrt27VJJSYm++OILtW3b1uvhIMvx+wg/4fcRfsLvI/wkG38fbdtWTU2NjjrqKOXkxF+plFUzTDk5OercubPXw8iYtm3bZs0vPPyP30f4Cb+P8BN+H+En2fb72NTMUgRFHwAAAAAgDgImAAAAAIiDgCmEWrdurTvuuEOtW7f2eigAv4/wFX4f4Sf8PsJP+H2ML6uKPgAAAACAE8wwAQAAAEAcBEwAAAAAEAcBEwAAAADEQcAEAAAAAHEQMGWJ2tpa9e3bV5ZlaeXKlV4PB1low4YNGj9+vLp3767c3FyVlpbqjjvuUF1dnddDQ5Z45JFH1L17d7Vp00YnnXSS3n33Xa+HhCw0ffp0nXzyySosLNSRRx6pkSNHas2aNV4PC5Bkfj8ty9LPf/5zr4fiKwRMWWLy5Mk66qijvB4Gstinn36q+vp6Pf744/rkk0/08MMP67HHHtMvfvELr4eGLPDCCy/o5z//uW655RZ9+OGHOv300/XDH/5QmzZt8npoyDKLFi3SNddco/fff19vvfWW9u/fr2HDhmnPnj1eDw1ZbtmyZXriiSd0/PHHez0U36GseBZ48803NWnSJC1YsEDHHnusPvzwQ/Xt29frYQG6//779eijj2r9+vVeDwUhN2DAAPXr10+PPvpodFvv3r01cuRITZ8+3cORIdtt27ZNRx55pBYtWqQzzjjD6+EgS+3evVv9+vXTI488orvvvlt9+/bVjBkzvB6WbzDDFHL/93//pyuuuELPPPOM8vLyvB4OEGPnzp0qKiryehgIubq6Oq1YsULDhg2L2T5s2DAtWbLEo1EBxs6dOyWJcyE8dc0112jEiBH6wQ9+4PVQfKml1wNA+ti2rXHjxmnChAnq37+/NmzY4PWQgKh169Zp9uzZevDBB70eCkKuqqpKBw4cUMeOHWO2d+zYUV9++aVHowLMdXrSpEkaNGiQ+vTp4/VwkKWef/55ffDBB1q2bJnXQ/EtZpgCaNq0abIsq8k/y5cv1+zZs7Vr1y5NnTrV6yEjxBL9fWyosrJSw4cP17/+67/qpz/9qUcjR7axLCvmsW3bh2wDMunaa6/VqlWr9Nxzz3k9FGSpL774Qtdff73mz5+vNm3aeD0c32INUwBVVVWpqqqqyX26deumiy66SK+99lrMF4IDBw6oRYsWuvjiizVv3rx0DxVZINHfx8iJuLKyUkOHDtWAAQM0d+5c5eRw3wbpVVdXp7y8PP3Xf/2XRo0aFd1+/fXXa+XKlVq0aJGHo0O2uu666/Tyyy/rL3/5i7p37+71cJClXn75ZY0aNUotWrSIbjtw4IAsy1JOTo5qa2tjnstWBEwhtmnTJu3atSv6uLKyUmVlZfr973+vAQMGqHPnzh6ODtloy5YtGjp0qE466STNnz+fkzAyZsCAATrppJP0yCOPRLcdc8wxOu+88yj6gIyybVvXXXedXnrpJb3zzjvq1auX10NCFqupqdHGjRtjtl122WX63ve+pylTppAq+g3WMIVYly5dYh4XFBRIkkpLSwmWkHGVlZUaMmSIunTpogceeEDbtm2LPved73zHw5EhG0yaNEmXXnqp+vfvr4EDB+qJJ57Qpk2bNGHCBK+HhixzzTXX6He/+51eeeUVFRYWRtfRtWvXTrm5uR6PDtmmsLDwkKAoPz9fxcXFBEsNEDAByIg//vGP+vzzz/X5558fErAz0Y10u/DCC7V9+3bddddd2rp1q/r06aM33nhDXbt29XpoyDKR0vZDhgyJ2T5nzhyNGzcu8wMC0CxS8gAAAAAgDlZbAwAAAEAcBEwAAAAAEAcBEwAAAADEQcAEAAAAAHEQMAEAAABAHARMAAAAABAHARMAAAAAxEHABAAAAABxEDABABplWZZefvnluM+/8847sixL1dXVGRsT3DNu3DiNHDkycK8NAJlGwAQAPjJu3DhZlqUJEyYc8tzVV18ty7I0btw4V99z2rRp6tu3r6uvmSi+WH/Ly38HAEB8BEwA4DMlJSV6/vnntW/fvui2f/7zn3ruuefUpUsXD0cGxPr666+9HgIApB0BEwD4TL9+/dSlSxctXLgwum3hwoUqKSnRiSeeGLNvbW2tJk6cqCOPPFJt2rTRoEGDtGzZsujzkbS5P/3pT+rfv7/y8vJ06qmnas2aNZKkuXPn6s4779RHH30ky7JkWZbmzp0bPb6qqkqjRo1SXl6eevXqpVdffbXRMe/Zs0dt27bV73//+5jtr732mvLz81VTU5PQZx8yZIgmTpyoyZMnq6ioSN/5znc0bdq0mH2qq6t15ZVXqmPHjmrTpo369OmjP/zhD9HnFyxYoGOPPVatW7dWt27d9OCDD8Yc361bN919990aM2aMCgoK1LVrV73yyivatm2bzjvvPBUUFOi4447T8uXLY45bsmSJzjjjDOXm5qqkpEQTJ07Unj17EvpcEe+8845OOeUU5efnq3379jrttNO0cePGJv8dHnroIR133HHKz89XSUmJrr76au3evTv6mnPnzlX79u1VXl6u3r17q6CgQMOHD9fWrVuj+xw4cECTJk1S+/btVVxcrMmTJ8u27Zix/fd//7cGDRoU3edHP/qR1q1bF31+w4YNsixLL774ooYMGaI2bdpo/vz5Cb02AAQZARMA+NBll12mOXPmRB8/9dRTuvzyyw/Zb/LkyVqwYIHmzZunDz74QD179lRZWZl27NgRs98tt9yiBx98UMuXL1fLli2jr3XhhRfqxhtv1LHHHqutW7dq69atuvDCC6PH3Xnnnfrxj3+sVatW6eyzz9bFF198yGtLUn5+vi666KKYMUvSnDlzdMEFF6iwsDDhzz5v3jzl5+dr6dKluu+++3TXXXfprbfekiTV19frhz/8oZYsWaL58+fr73//u+699161aNFCkrRixQr9+Mc/1kUXXaSPP/5Y06ZN02233RYTBErSww8/rNNOO00ffvihRowYoUsvvVRjxozRJZdcEv17HDNmTPSL/8cff6yysjKdf/75WrVqlV544QUtXrxY1157bcKfa//+/Ro5cqQGDx6sVatW6b333tOVV14py7Ka/HfIycnRrFmz9Le//U3z5s3Tn//8Z02ePDnmtffu3asHHnhAzzzzjP7yl79o06ZN+vd///fo8w8++KCeeuop/fa3v9XixYu1Y8cOvfTSSzGvsWfPHk2aNEnLli3Tn/70J+Xk5GjUqFGqr6+P2W/KlCmaOHGiVq9erbKysoReGwACzQYA+MbYsWPt8847z962bZvdunVru6Kiwt6wYYPdpk0be9u2bfZ5551njx071rZt2969e7fdqlUr+9lnn40eX1dXZx911FH2fffdZ9u2bb/99tu2JPt//ud/ovu8/vrrtiR73759tm3b9h133GGfcMIJh4xFkn3rrbdGH+/evdu2LMt+8803Y177q6++sm3btpcuXWq3aNHC3rJli23btr1t2za7VatW9jvvvNPs540YPHiwPWjQoJh9Tj75ZHvKlCm2bdt2eXm5nZOTY69Zs6bR1/vJT35in3XWWTHbbrrpJvuYY46JPu7atat9ySWXRB9v3brVlmTfdttt0W3vvfeeLcneunWrbdu2femll9pXXnllzOu+++67dk5OTvTvsTnbt2+3JcX9+4j373CwF1980S4uLo4+njNnji3J/vzzz6Pbfv3rX9sdO3aMPu7UqZN97733Rh9//fXXdufOnWP+7g/2j3/8w5Zkf/zxx7Zt23ZFRYUtyZ4xY0bMfsm8NgAECTNMAOBDHTp00IgRIzRv3jzNmTNHI0aMUIcOHWL2Wbdunb7++muddtpp0W2tWrXSKaecotWrV8fse/zxx0f/u1OnTpKkf/zjH82Oo+Fx+fn5KiwsjHvcKaecomOPPVZPP/20JOmZZ55Rly5ddMYZZzT7PvHeMzLeyHuuXLlSnTt31tFHH93osatXr475+5Ck0047TWvXrtWBAwcafY+OHTtKko477rhDtkXed8WKFZo7d64KCgqif8rKylRfX6+KiopDxrFp06aYfe+55x4VFRVp3LhxKisr0znnnKOZM2fGpM3F8/bbb+uss87Sd7/7XRUWFmrMmDHavn17TDpgXl6eSktLG/0727lzp7Zu3aqBAwdGn2/ZsqX69+8f8z7r1q3TT37yE/Xo0UNt27ZV9+7do5+loYbHJfraABBkBEwA4FOXX3655s6dq3nz5jWajmd/ky5mWdYh2w/e1qpVq+h/R547ONWqMQ2Pixzb1HE//elPo2l5c+bM0WWXXXbIWFJ5z9zc3CaPbeyz242sp2ns76Opv6P6+npdddVVWrlyZfTPRx99pLVr18YEKhFHHXVUzL6Rqodz5szRe++9p1NPPVUvvPCCjj76aL3//vtxP8/GjRt19tlnq0+fPlqwYIFWrFihX//615JiCy409nfW2OduyjnnnKPt27frySef1NKlS7V06VJJUl1dXcx++fn5jl4XAIKOgAkAfGr48OGqq6tTXV2dysrKDnm+Z8+eOuyww7R48eLotq+//lrLly9X7969E36fww47LGb2JRWXXHKJNm3apFmzZumTTz7R2LFjXXndiOOPP16bN2/WZ5991ujzxxxzTMzfh2SKNRx99NHRdU7J6Nevnz755BP17NnzkD+HHXbYIfu3bNkyZp+ioqLocyeeeKKmTp2qJUuWqE+fPvrd734nqfF/h+XLl2v//v168MEH9f3vf19HH320KisrHY29Xbt26tSpU0xgtn//fq1YsSL6ePv27Vq9erVuvfVWnXnmmerdu7e++uorV14bAIKupdcDAAA0rkWLFtHUusa+7Ofn5+tnP/uZbrrpJhUVFalLly667777tHfvXo0fPz7h9+nWrZsqKiqi6W6FhYVq3bp1UmM+/PDDdf755+umm27SsGHD1Llz56ReJ57BgwfrjDPO0OjRo/XQQw+pZ8+e+vTTT2VZloYPH64bb7xRJ598sv7jP/5DF154od577z396le/0iOPPJLS+06ZMkXf//73dc011+iKK65Qfn6+Vq9erbfeekuzZ89O6DUqKir0xBNP6Nxzz9VRRx2lNWvW6LPPPtOYMWMkNf7vUFpaqv3792v27Nk655xz9L//+7967LHHHI//+uuv17333qtevXqpd+/eeuihh2IaDh9++OEqLi7WE088oU6dOmnTpk26+eabXXltAAg6ZpgAwMfatm2rtm3bxn3+3nvv1ejRo3XppZeqX79++vzzz1VeXq7DDz884fcYPXq0hg8frqFDh+qII47Qc889l9KYx48fr7q6ukbTCN2wYMECnXzyyfq3f/s3HXPMMZo8eXJ0ZqZfv3568cUX9fzzz6tPnz66/fbbddddd6Xc7Pf444/XokWLtHbtWp1++uk68cQTddttt0XXgyUiLy9Pn376qUaPHq2jjz5aV155pa699lpdddVVkhr/d+jbt68eeugh/ed//qf69OmjZ599VtOnT3c8/htvvFFjxozRuHHjNHDgQBUWFmrUqFHR53NycvT8889rxYoV6tOnj2644Qbdf//9rrw2AASdZTtNcgYAoAnPPvusrr/+elVWVjaargYAQJCQkgcAcMXevXtVUVGh6dOn66qrriJYAgCEAil5AABX3Hffferbt686duyoqVOnej0cAABcQUoeAAAAAMTBDBMAAAAAxEHABAAAAABxEDABAAAAQBwETAAAAAAQBwETAAAAAMRBwAQAAAAAcRAwAQAAAEAcBEwAAAAAEMf/AzW95Xjrl3y7AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1000x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,8))\n",
    "plt.scatter(X_pca[cluster_pred==0,0],X_pca[cluster_pred==0,1], s = 100, c = 'red', label ='cluster 1' )\n",
    "plt.scatter(X_pca[cluster_pred==1,0],X_pca[cluster_pred==1,1], s = 100, c = 'blue', label ='cluster 2' )\n",
    "plt.scatter(X_pca[cluster_pred==2,0],X_pca[cluster_pred==2,1], s = 100, c = 'green', label ='cluster 3' )\n",
    "plt.scatter(cluster_center[:,0],cluster_center[:,1], s = 300, c = 'yellow', label = 'Centroids')\n",
    "plt.title('Clusters of customers')\n",
    "plt.xlabel('Monthly Income -standard')\n",
    "plt.ylabel('Spending Score (1-100)-standard')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b03237fc-2bbe-4be9-983a-f271d57ccce2",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "067bbf45-a69a-41a3-a3e1-34dbf451e33e",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
